Print this page
cpp: just use fwrite() for writing
*** 205,218 ****
static char *macnam; /* name of macro requiring actuals */
static int maclvl; /* # calls since last decrease in nesting level */
static char *macforw; /* ptr which must be exceeded to decrease nesting lvl */
static int macdam; /* offset to macforw due to buffer shifting */
- #if tgp
- int tgpscan; /* flag for dump(); */
- #endif
-
static int inctop[MAXINC];
static char *fnames[MAXINC];
static char *dirnams[MAXINC]; /* actual directory of #include files */
static int fins[MAXINC];
static int lineno[MAXINC];
--- 205,214 ----
*** 364,411 ****
* are available for use.
*/
static void
dump() {
- /*
- * write part of buffer which lies between outp and inp .
- * this should be a direct call to 'write', but the system slows to a crawl
- * if it has to do an unaligned copy. thus we buffer. this silly loop
- * is 15% of the total time, thus even the 'putc' macro is too slow.
- */
register char *p1;
- #if tgp
- register char *p2;
- #endif
- register FILE *f;
if ((p1=outp)==inp || flslvl!=0) return;
! #if tgp
! #define MAXOUT 80
! if (!tgpscan) {
! /* scan again to insure <= MAXOUT chars between linefeeds */
! register char c,*pblank; char savc,stopc,brk;
! tgpscan=1; brk=stopc=pblank=0; p2=inp; savc= *p2; *p2='\0';
! while (c= *p1++) {
! if (c=='\\') c= *p1++;
! if (stopc==c) stopc=0;
! else if (c=='"' || c=='\'') stopc=c;
! if (p1-outp>MAXOUT && pblank!=0) {
! *pblank++='\n';
! inp=pblank;
! dump();
! brk=1;
! pblank=0;
! }
! if (c==' ' && stopc==0) pblank=p1-1;
! }
! if (brk) sayline(NOINCLUDE);
! *p2=savc; inp=p2; p1=outp; tgpscan=0;
! }
! #endif
! f=fout;
! while (p1<inp)
! putc(*p1++,f);
outp=p1;
}
static char *
refill(p) register char *p; {
--- 360,372 ----
* are available for use.
*/
static void
dump() {
register char *p1;
if ((p1=outp)==inp || flslvl!=0) return;
! fwrite(p1, inp - p1, 1, fout);
outp=p1;
}
static char *
refill(p) register char *p; {
*** 1009,1026 ****
} else if (np==udfloc) {/* undefine */
if (flslvl==0) {
++flslvl; p=skipbl(p); slookup(inp,p,DROP); --flslvl;
}
} else if (np==ifloc) {/* if */
- #if tgp
- pperror(" IF not implemented, true assumed", 0);
- if (flslvl==0) ++trulvl; else ++flslvl;
- #else
newp=p;
if (flslvl==0 && yyparse()) ++trulvl; else ++flslvl;
p=newp;
- #endif
} else if (np == idtloc) { /* ident */
if (pflag == 0)
while (*inp != '\n') /* pass text */
p = cotoken(p);
} else if (np == pragmaloc) { /* pragma */
--- 970,982 ----