/*  skip - output "n" blank lines  */
skip (n)
/******/
   int n;
   {
   int t;

   t = n;
   while (t-- > 0)
       fputs ("\n", dev_lst);
   return (n);
   }  /* skip */

#define margin1 0      /* top of page to title line */
#define margin2 2      /* title line to body */
#define margin3 8      /* body to bottom of page */
#define page_size 66

char *title;
int line_of_page;
int page;

/* paginate - separate stream of buffers into pages */
paginate (buf)
/************/
   char *buf;
   {
   if (page != 0)  /* M. A. Jacksons's program inversion */
       goto resume;   /* technique used */
   /* read */
   while (buf != NULL)   /* while not end of file */
       {
       ++page;
       fputs ("\f", dev_lst);
       line_of_page = skip (margin1);
       if (title != NULL)  /* output title and page nr. */
           {
           fprintf (dev_lst, "%-60spage %1d",
                             title, page);
           line_of_page += skip (margin2);
           }
       while (buf != NULL && line_of_page < page_size - margin3)
           {
           fputs (buf, dev_lst);
           ++line_of_page;
           /* read */
           return;
       resume: ;
           }
       line_of_page = 0;
       }
   page = 0;
   }  /* paginate */