home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol078
/
pagin8.c
< prev
next >
Wrap
C/C++ Source or Header
|
1984-04-29
|
1KB
|
55 lines
/* 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 */