diff options
Diffstat (limited to 'usr/src/lib/libpp/common/ppcontrol.c')
-rw-r--r-- | usr/src/lib/libpp/common/ppcontrol.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/usr/src/lib/libpp/common/ppcontrol.c b/usr/src/lib/libpp/common/ppcontrol.c index fff96641f3..10fb841965 100644 --- a/usr/src/lib/libpp/common/ppcontrol.c +++ b/usr/src/lib/libpp/common/ppcontrol.c @@ -1,7 +1,7 @@ /*********************************************************************** * * * This software is part of the ast package * -* Copyright (c) 1986-2008 AT&T Intellectual Property * +* Copyright (c) 1986-2009 AT&T Intellectual Property * * and is licensed under the * * Common Public License, Version 1.0 * * by AT&T Intellectual Property * @@ -450,6 +450,7 @@ ppcontrol(void) } pp.state &= ~DISABLE; pp.state |= HEADER|STRIP; + pp.in->flags |= IN_noguard; switch (c = pplex()) { case T_STRING: @@ -1468,11 +1469,12 @@ ppcontrol(void) { case T_STRING: s = error_info.file; - if (*(p = pp.token)) pathcanon(p, 0); + if (*(p = pp.token)) + pathcanon(p, 0); fp = ppsetfile(p); error_info.file = fp->name; if (error_info.line == 1) - ppmultiple(fp, INC_TEST); + ppmultiple(fp, INC_IGNORE); switch (c = pplex()) { case '\n': @@ -1953,8 +1955,8 @@ ppcontrol(void) break; case X_MULTIPLE: n = 1; - if (pp.in->type == IN_FILE) - ppmultiple(ppsetfile(error_info.file), i0 ? INC_CLEAR : INC_TEST); + if (pp.in->type == IN_FILE || pp.in->type == IN_RESCAN) + ppmultiple(ppsetfile(error_info.file), i0 ? INC_CLEAR : INC_IGNORE); break; case X_NATIVE: setoption(NATIVE, i0); |