diff options
author | Nicholas Noll <nbnoll@eml.cc> | 2020-05-22 17:14:48 -0700 |
---|---|---|
committer | Nicholas Noll <nbnoll@eml.cc> | 2020-05-22 17:14:48 -0700 |
commit | 69487ed29aed49ca0e3481e9783e02e9156258b2 (patch) | |
tree | 2d66daf2f8798b0ae8595f8cea593e076dbe971c /sys/cmd/cc/pp.c | |
parent | 0d5942d8deaa70427df6df016b3ed9dedfb65b0d (diff) |
fix: encapsulated the IO stack into the lexer
Diffstat (limited to 'sys/cmd/cc/pp.c')
-rw-r--r-- | sys/cmd/cc/pp.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/cmd/cc/pp.c b/sys/cmd/cc/pp.c index 30a162b..5eed4b2 100644 --- a/sys/cmd/cc/pp.c +++ b/sys/cmd/cc/pp.c @@ -3,6 +3,17 @@ // ----------------------------------------------------------------------- // helper functions +static +void +pushomit(Lexer *lx, string omit) +{ + if (lx->omit.len == lx->omit.cap) { + lx->omit.cap += 20; + lx->omit.path = realloc(lx->omit.path, lx->omit.cap*sizeof(*lx->omit.path)); + } + lx->omit.path[lx->omit.len++] = omit; +} + // NOTE: The iterator of lexer lx->b IS NOT reset. // Its the caller's responsibility. static @@ -910,7 +921,7 @@ ppprag(Lexer *lx) } lx->b = lx->buf; if (strcmp(s, "once") == 0) { - pushomit(lx->io->path); + pushomit(lx, lx->io->path); return 0; } Bad: |