From 4aca87515a5083ae0e31ce3177189fd43b6d05ac Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 3 Jan 2015 13:58:15 +0100 Subject: patch to Vanilla Tomato 1.28 --- release/src/router/busybox/libbb/printable.c | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 release/src/router/busybox/libbb/printable.c (limited to 'release/src/router/busybox/libbb/printable.c') diff --git a/release/src/router/busybox/libbb/printable.c b/release/src/router/busybox/libbb/printable.c new file mode 100644 index 00000000..ae933593 --- /dev/null +++ b/release/src/router/busybox/libbb/printable.c @@ -0,0 +1,34 @@ +/* vi: set sw=4 ts=4: */ +/* + * Utility routines. + * + * Copyright (C) 2007 Denys Vlasenko + * + * Licensed under GPL version 2, see file LICENSE in this tarball for details. + */ + +#include "libbb.h" + +void FAST_FUNC fputc_printable(int ch, FILE *file) +{ + if ((ch & (0x80 + PRINTABLE_META)) == (0x80 + PRINTABLE_META)) { + fputs("M-", file); + ch &= 0x7f; + } + ch = (unsigned char) ch; + if (ch == 0x9b) { + /* VT100's CSI, aka Meta-ESC, is not printable on vt-100 */ + ch = '{'; + goto print_caret; + } + if (ch < ' ') { + ch += '@'; + goto print_caret; + } + if (ch == 0x7f) { + ch = '?'; + print_caret: + fputc('^', file); + } + fputc(ch, file); +} -- cgit v1.2.3-54-g00ecf