c = 0;
{ if (1 > n) break; n -= 1; fprintf (f, "?"); } *macro += k;
static int print_macro (FILE *f, int maxchar, const char **macro){  int c = (unsigned char) **macro;  int n = maxchar;  while (c)  {    if (!IsPrint(c))    {      if (c >= ' ' && c != 127)	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 = (c + '@') & 127;	    break;	}      }    }    if (c && n > 0)    {      --n;      fputc(c, f);      c = (unsigned char) *++*macro;    }    else      c = 0;  }  return (maxchar - n);}