+#endif /* NO_LEAKS */
+
+static void
+show_string(const char *name, const char *value)
+{
+ printf(FNAME(str), name);
+ if (value == ((char *) -1)) {
+ printf("CANCELLED");
+ } else if (value == ((char *) 0)) {
+ printf("ABSENT");
+ } else {
+ while (*value != 0) {
+ int ch = UChar(*value++);
+ switch (ch) {
+ case '\177':
+ fputs("^?", stdout);
+ break;
+ case '\033':
+ fputs("\\E", stdout);
+ break;
+ case '\b':
+ fputs("\\b", stdout);
+ break;
+ case '\f':
+ fputs("\\f", stdout);
+ break;
+ case '\n':
+ fputs("\\n", stdout);
+ break;
+ case '\r':
+ fputs("\\r", stdout);
+ break;
+ case ' ':
+ fputs("\\s", stdout);
+ break;
+ case '\t':
+ fputs("\\t", stdout);
+ break;
+ case '^':
+ fputs("\\^", stdout);
+ break;
+ case ':':
+ fputs("\\072", stdout);
+ break;
+ case '\\':
+ fputs("\\\\", stdout);
+ break;
+ default:
+ if (isgraph(ch))
+ fputc(ch, stdout);
+ else if (ch < 32)
+ printf("^%c", ch + '@');
+ else
+ printf("\\%03o", ch);
+ break;
+ }
+ }
+ }
+ printf("\n");
+}
+
+static void
+show_number(const char *name, int value)
+{
+ printf(FNAME(num), name);
+ printf(" %d\n", value);
+}