1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-12-29 15:28:06 +11:00
collapseos/tools/ttysafe.c
Virgil Dupras 049f2cf222 Reverse ttysafe escaping order
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.
2020-02-22 14:11:43 -05:00

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;
}