/* Programm zum Aufbereiten von C-Quellen fuer den Druck */ #include "stdio.h" extern FILE stdin; int n_flag = NO; int h_flag = NO; /* List - Parameter */ #define HARD_PAGE 72 #define HARD_WIDTH 100 #define MAXFILE 14 #define MAXLINE 80 #define EOS '\0' /* Ausgabe von n Leerzeilen */ skip(n) int n; { int t = n; while (t-- > 0) putchar('\n'); return(n); } #define MARGIN1 6 /*oberer Rand*/ #define MARGIN2 3 /*Abstand Titel-Quelltext*/ #define MARGIN3 8 /*unterer Rand*/ char *title = NULL; /* Seitenaufbau */ paginate(buf) char *buf; { static int line; static int page = 0; if (page != 0) goto resume; /* lesen */ while (buf != NULL) { ++page; line = skip(MARGIN1); if (title != NULL) { printf("NAME: %p \t\t\t\tSEITE: %5i\n", title, page); line += skip(MARGIN2); } while (buf!=NULL && linebegin) { t = itob(tmp, line_number, 0); strncpy(buf+BORDER-2-t, tmp, t); detab(line, buf+BORDER); paginate(buf); } if (n_flag || h_flag) check_include(line); } } /* Hauptprozedur - Behandlung der Parameter */ main(argc, argv) int argc; char **argv; { char *s, getflags(); char buf[MAXLINE+1]; if (s = getflags(&argc, &argv, "n,h,i*,b#,e#", \ &n_flag, &h_flag, &prefix, &begin, &ende)) { errfmt ("bad flags\n"); exit(NO); } if(argc <= 0) { list(""); paginate(NULL); } else { do { title = *argv; include(title, &list); paginate(NULL); } while (++argv, --argc); } }