svn commit: trunk/busybox/libbb

vda at busybox.net vda at busybox.net
Sun Dec 30 20:13:40 UTC 2007


Author: vda
Date: 2007-12-30 12:13:39 -0800 (Sun, 30 Dec 2007)
New Revision: 20696

Log:
adding libbb/printable.c



Added:
   trunk/busybox/libbb/printable.c


Changeset:
Added: trunk/busybox/libbb/printable.c
===================================================================
--- trunk/busybox/libbb/printable.c	                        (rev 0)
+++ trunk/busybox/libbb/printable.c	2007-12-30 20:13:39 UTC (rev 20696)
@@ -0,0 +1,34 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Utility routines.
+ *
+ * Copyright (C) 2007 Denis Vlasenko
+ *
+ * Licensed under GPL version 2, see file LICENSE in this tarball for details.
+ */
+
+#include "libbb.h"
+
+void 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);
+}




More information about the busybox-cvs mailing list