case '\033': fputs ("\\e", f); i++; break; case '\n': fputs ("\\n", f); i++; break; case '\r': fputs ("\\r", f); i++; break; case '\t': fputs ("\\t", f); i++; break; default: fputc (*macro, f); break;
if (c >= ' ') c = '?'; else if (n < 2) c = 0; else { --n; switch (c) { case '\033': fputc ('\\', f); c = 'e'; break; case '\n': fputc ('\\', f); c = 'n'; break; case '\r': fputc ('\\', f); c = 'r'; break; case '\t': fputc ('\\', f); c = 't'; break; default: fputc ('^', f); c += '@'; break; } }
static int print_macro (FILE *f, int maxchar, const char *macro){  int i;  for (i = 0; *macro && i < maxchar; macro++, i++)  {    switch (*macro)    {      case '\033':	fputs ("\\e", f);	i++;	break;      case '\n':	fputs ("\\n", f);	i++;	break;      case '\r':	fputs ("\\r", f);	i++;	break;      case '\t':	fputs ("\\t", f);	i++;	break;      default:	fputc (*macro, f);	break;    }  }  return (i);}