mirror of
https://github.com/hsoft/collapseos.git
synced 2024-09-08 03:58:46 +10:00
Sending the escape after its target made things complicated for upcoming stuff I want to add. Although it makes `recv.asm` slightly larger, it's really worth it.
27 lines
671 B
C
27 lines
671 B
C
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
|
|
/* Converts stdin to a content that is "tty safe", that is, that it doesn't
|
|
* contain ASCII control characters that can mess up serial communication.
|
|
* How it works is that it leaves any char > 0x20 intact, but any char <= 0x20
|
|
* is replaced by two chars: 0x20, then char|0x80. A 0x20 char always indicate
|
|
* "take the next char you'll receive and unset the 7th bit from it".
|
|
*/
|
|
|
|
int main(void)
|
|
{
|
|
int c = getchar();
|
|
while (c != EOF) {
|
|
if (c <= 0x20) {
|
|
putchar(0x20);
|
|
putchar(c|0x80);
|
|
} else {
|
|
putchar(c&0xff);
|
|
}
|
|
c = getchar();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|