108-05-11 ppproto.c: fix proto test 10 regression 207-09-21 ppproto.c: add "Public Domain" to the noticed list 307-08-11 probe.win32: add cl.exe setuid workaround, CC.VERSION[.STRING] 407-06-12 pplex.c: finish -D:preserve logic update for imake 507-06-07 pplex.c: handle -D:preserve S_CHRB splices 607-06-04 ppsearch.c: only apply pp:chop ?old?new? if original not found 707-03-11 add -D-Y pp:pedantic, PP_WARN macro formal parenthesis checks 807-01-26 pp.def,probe.win32: add _WCHAR_T_DEFINED 906-09-23 ppop.c: check -I <dev,ino> for c and TYPE_HOSTED|TYPE_VENDOR attrs 1006-09-23 pplex.c: add HOSTED check for "/* appears in // comment" -- doh 1106-09-05 pp.probe: add version stamp comment 1206-06-29 pp.probe: gcc pp:linefile probe (otherwise it can dump!) 1306-06-28 ppproto.c: fix inappropriate __PARAM__ insertion 1406-05-09 pp.tab,ppcontrol.c,ppproto.c: add externalize 15 ppfsm.c: handle compatibility ul numeric qualifiers 1606-02-28 probe.win32: add wchar_t probe 1706-01-11 pplex.c: fix rpcgen pp:passthrough header splice bug 1805-12-16 pplex.c: fix imake pp:passthrough comment splice bug 1905-09-16 pplib.h: add <string.h> for standalone proto 2005-07-31 pplib.h: finally trust __STDC__ headers 2105-04-11 pplex.c: fix '"a" #s' catliteral + stringize bug 2205-03-29 pp.probe: check $? and stderr messages for pp:lineid 2305-02-20 probe.win32: handle /platformsdk mount 2405-01-11 ppargs.c: fix -I-S docs 25 ppinput.c: ppproto() only for COMPATIBILITY or PLUSPLUS 2604-10-22 ppproto.c: handle `type var[x][y]' arg prototype 2704-10-01 pplex.c: really fix directive hidden newline logic 2804-08-31 pplex.c: fix directive hidden newline logic 29 ppcall.c: fix '(' peek bug that missed the MARK 3004-08-30 add pragma pp:pragmaflags PP_PRAGMAFLAGS, pp:system_header 3104-08-11 ppproto.c: intercept "#(define|undef) extern" for __(EX|IM)PORT__ 3204-07-23 probe.win32: generalize #include dir order search 3304-07-22 ppsearch.c: access() => eaccess() 3404-05-20 ppproto.c: don't __PROTO__ `int fun __P((int));' 3504-04-15 probe.win32: sync up with uwin 2003-08-06 master -- oops 3604-04-01 pp.probe: add stdinclude usrinclude path cleanup 3704-02-29 ppproto.c: fix bug that skipped prototyped check during notices check 38 ppproto.c: recognize `Copyright nn' 3904-02-14 ppproto.c: comment[0]==0 => no notice 4004-02-11 Makefile: fix %.yacc to handle cross-compile 4104-01-28 pp.h,pplib.h,ppop.c: add PP_RESET to restore original pp.symtab scope 4203-12-12 ppcall.c: missing macro actual warned but expanded 4303-11-12 ppexpr.c: fix premature #if expression token strip 4403-06-21 ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL 4503-06-10 ppargs.c: add -D-d and -D-m 46 ppargs.c: add gnu options { -dD -dM -imacros -include -lang-* -lint } 4703-05-19 pplex.c: fix stray SKIPMACRO bug 4803-05-18 ppcall.c: add SYM_FUNCTION '(' peek to avoid inappropriate ungetchr() 4903-04-30 pp:mapinclude hosted <std.h>="." will search only hosted dirs 50 pp.probe: add pp:mapinclude probe for namespace incursions 5103-04-29 ignore()=>ppmapinclude(), add pp:mapinclude 5203-03-25 ppop.c: PP_RESERVED now deletes old symbol before redef with lex value 5303-03-14 pp.probe: fix the #include_next probe 5403-02-28 ppsearch.c: fix -MM bug that missed prefix include hosted mark 5503-02-18 pplex.c: handle COMPATIBILITY \" and \' in macro actuals 5603-01-23 probe.win32: mingw32 tweaks 5702-12-17 ppargs.c: document -I-! 5802-12-06 -I- pp:noprefix otherwise pp:prefix default 5902-11-29 probe.win32: added __INTSIZE, drop dm pp:noallmultiple 6002-11-26 pp.def: add STDC_HOSTED 61 probe.win32: add C95 and C99 STDC predefined macros 6202-10-30 ppfsm.h: add boundary check to IDSTATE() 6302-10-18 probe.win32: update for mingw 6402-10-15 ppsearch.c: if PLUSPLUS && not found && no suffix then try with .h 6502-10-10 pplex.c: fix does not end with `newline' bugs 6602-10-01 ppop.c,ppargs.c: -I-I => -I-M with proper docs; -I-I for PP_IGNORE 6702-09-21 pp.probe: add pp:nocatliteral test 6802-09-10 pp.tab: add pp:passthrough to match -D-P docs 6902-08-30 probe.win32: fix for borland cc -E 7002-08-22 ppexpr.c: add __SOURCE__ and #match(string,pattern) 7102-06-25 ppproto.c: fix pragma search bug that stopped after 8 comment lines 7202-06-11 ppsearch.c: fix ... next include search to skip *all* intermediates 7302-05-28 probe.win32: updates for { mingw } 74 ppsearch.c: don't use inherited prefix for <...> -- duh 7502-05-24 ppcontrol.c: simplify getline() space canonicalization 76 probe.win32: updates for { digital-mars borland lcc } 7702-05-20 ppcontrol.c: update to use regsubcomp(),regsubexec() 7802-05-09 ppcontrol.c: inhibit `EOF in directive': newline warning will catch it 79 pplex.c: inhibit `newline in character constant' for hosted directives 8002-05-06 probe.win32: add more win32 compilers 8102-04-15 probe.win32: handle long long unsigned int 8202-04-12 ppproto.c: fix NOTICED check 8302-03-15 ppproto.c: fix cpp pp:compatibility double line sync memory fault 8402-03-11 pplex.c: add pp:modern to emit \a \v instead of octal forms 8502-02-14 ppargs.c: fix -D or -U as last arg core dump 8602-01-24 pplib.h: use vmalloc(Vmregion) if _std_malloc 8702-01-23 probe.win32: add more msvc predefined macro candidates 8802-01-14 ppproto.c: #pragma prototyped noticed -- has notice comment 8902-01-10 ppproto.c: fix PROTO_FORCE|PROTO_PASS bug that disabled PROTO_FORCE 9002-01-08 pplex.c: fix HEADEREXPAND|HEADEREXPANDALL logic 9101-11-22 pplex.c: add pp:headerexpandall for gcc vs. msvc <...> expand diff 92 pp.probe: add pp:headerexpandall test 9301-10-20 pplex.c: fix pp:splicespace inside "..." 9401-09-11 ppinput.c: use pathnative() for native fs representation 9501-08-31 pp.probe: handle -Dmacro(args)=value 9601-08-11 ppcontrol: fix ... and __VAR_ARGS__ for C99 97 ppsearch: fix SEARCH_NEXT bug that skipped the include stack 9801-08-06 ppproto: preserve #! first line for # comments 9901-07-17 gentab.sh: fix ksh test to omit pdksh (typeset -u fails) 10001-06-26 ppproto.c: fix another buffer boundary bug that didn't preserve OTHER 10101-06-06 ppsearch.c: list PP_FILEDEPS headers once 10201-06-01 pp.h,ppop.c,ppsearch.c: allow multiple PP_FILEDEPS (-M) 10301-05-24 pp.probe: fix pp:hostedtransition probe: only suncc can __STDC__==1? 10401-04-25 pp.probe: split macro probe files for compilers that have #line limits 10501-04-19 pp.h,pplex.c,ppproto.c: fix { \a \E \v } EBCDIC translations 10601-04-16 pp.tab: add pp:splicespace for mvs jcl decks -- the 60's live on 10701-04-13 ppbuiltin: add __FUNCTION__ cache for functions that span the buffer 10801-03-08 pp.tab,ppbuiltin,ppcontrol,probe: add pp:hostedtransition 10901-02-22 pp.tab,ppfsm,pplex,pp.probe,probe.win32: add pp:zeof for ^Z => EOF 11001-02-14 ppcall.c: fix macro(tuple*) bug that truncated macro arg expand buffer 111 pplex.c: fix # inside pp:pragmaexpand 112 gentab.sh: change ksh test for openbsd /bin/sh 113 ppproto.c: fix buffer boundary bug that lost call nesting 114 ppproto.c: add realloc prototype and memcpy=>memcopy strcpy=>strcopy 11501-02-09 ppsearch.c: fix another pp.include null dereference 11601-02-07 ppcall.c: fix stack inequality checks 117 ppcall.c: handle trailing \ in macro args 11801-02-06 fix readonly buffer write (cpp test 07:2873) 11901-02-04 fix -M* to properly handle .cxx .cpp .C input 120 fix IN_BUFFER pop bug that did not reset the token pointer 12101-01-01 pp:headerexpand: space ok if not IN_MACRO 122 ppcall: hide if IN_FILE|IN_MACRO|IN_EXPAND 123 pplex: don't complain about ^L or ^Z as last char in file 124 ppsearch: fix #include <.../foo.h> loop 125 ppcontrol: manulally increment IN_RESCAN error_info.line 12600-12-25 add EXPOSE to expose hidden macros (for #import ...) 127 probe.win32: add cc path *and* args to first line to avoid hash clash 128 pp.probe: filter out invalid symbols for predefined macro scan, duh 129 pp:headerexpand: limit expansion to IN_MACRO 13000-10-31 __STDC__==0 if HOSTED && _UWIN 13100-10-26 pplib.h: change SEEK_SET to O_RDONLY for aix 13200-10-17 pp.probe: __IMPORT__ => __STDPP__IMPORT__ 13300-09-18 add __FUNCTION__=#(FUNCTION), #define <a b> c 134 pp.probe: add probe_longlong 135 probe.win32: add #define <long long> 13600-09-11 add pp:noproto (NOPROTO pp.option) to disable ppproto() 13700-09-01 ppproto: fix buffer slide bug 13800-08-11 pplb.h: check for <unistd.h> already included for PROTOMAIN 139 pragma: add pp:pragmaexpand to expand pragma args 140 ppcontrol: always disable pp:* pragma expansion 141 ppcall: fix pp:hide buffer clash 14200-06-01 pplex: fix "\\U" and "\\u" 14300-05-22 ppsearch: fix uwin #include <C:/foo/bar.h> 14400-05-16 probe.win32: update reserved word list 14500-05-09 ppcontrol: fix C++ macro >+> invalid fuse 146 ppcontrol: 'macro' expansion only for COMPATIBILITY | TRANSITION 147 c9x: up to date with proposed standard 14800-04-01 pp.tab: add allpossible and ALLPOSSIBLE 149 ppmacref: fix ref inside literal catenation 15000-02-14 pppopen(): general comments with "bme" (begin middle end) string 15100-01-11 pp.probe: hosttype now in C.probe 15299-11-19 is[a-z]*( => ppis[a-z]*( 153 ppproto: "..." [A-Z_]+ "..." ignores [A-Z_]+ if PROTOMAIN 15499-11-11 ppproto: use astlicense() 15599-10-31 ppproto: add PROTO_SHARP, update license parse 156 pplex: fix some MARK bugs seen by #define X "A B <C@D>" 15799-10-01 add pp:stringsplit for "...\\n..." => "..."\n"..." 158 add pp:lineid to match PP_LINEID 15999-07-17 ppbuiltin: fix getline() canon spacing for numbers 160 ppsearch: fix FILEDEPS not found \\n print 161 pplex: fix spurious FILEDEPS '.' empty character constant message 162 ppargs: fix usage error call and error_info.id default value 163 ppproto: fix up copyright notice for ksh93 style .author file 164 ppproto: check if notice text if file path 16599-06-02 ppproto: add __MANGLE_package_DATA__ & __MANGLE_package_FUNC__ 16699-05-26 ppcontrol: all pragmas but prototyped need pp: 16799-05-25 ppargs: long options 16899-05-22 ppproto: changes for full ast vs. PROTO_STANDALONE 16999-05-09 ppinput: add #pragma pp:native and (pp.option&NATIVE) for native paths 17099-04-22 ppproto: finish type=open notice 17199-02-11 #define __STDC__ #(STDC); demote __STDC__ to 0 for HOSTED (thanks sun) 17299-02-04 pplex: joined strings separated by \\\n 17399-01-11 probe.win32: add _UWIN predef 17498-10-20 pplex: a few more (HOSTED|RELAX) checks 175 -D:preserve throws a bunch of stuff -- great for imake (yuk) 17698-05-11 pplex: fix "..." \n off by one line count 17798-02-14 ppcontrol: fix HEADEREXPAND missing NUL 17898-01-23 ppproto: add _GNUC_ to _WIN32 check 179 ppfsm: don't optimize for hp.pa 18097-11-11 ppcontrol: fix recursive use of pp.hdrbuf for HEADEREXPAND 18197-10-31 ppmacref,pp.h: add ppmacref sum arg -- some parts assumed it! 18297-10-01 pplex: loosen HEADEREXPAND check 18397-08-11 pplex: fix COMPILE pplex() bug that did not reset NEWLINE for S_MACRO 184 pplex: PP_PRESERVE does not pp.pragma <token> ... # <pragma-stuff> 185 pp.def: add UWIN 186 ppcall: fix macro actual arg error checks 18797-07-17 ppproto.c: C++ __INLINE__ prefixed with extern __MANGLE__ 188 ppop.c: fix PP_RESERVED T_* lookup 18997-05-09 pp.def: add MVS :architecture: 190 ppfsm.c: change C_* pseudo codes to not clash with ebcdic 191 pp.probe: fix stdc.$src sed script 19297-04-01 ppcontrol.c: fix tokop() for PP_RESERVED 19396-12-25 add ms #@ charize to complement # stringize 194 pp.probe now detects preincludes 195 ppproto: allow #ifdef'd function definions before { 196 ppproto: NoN() is not a function 197 pp.key,ppkey.h: add int64 198 ppargs.c: fix -M{DGM}* 19996-12-06 add pp:headerexpand for ms that expands macros in expanded <...> 20096-10-31 a few more line sync tweaks for EDG C++ 20196-10-11 fix pp:macref off by one for standalone pp (big suprise) 20296-10-01 -D:macref -D-L -> #line (n-2)\n#pragma pp:macref ... 20396-08-11 fix transition macro expansion 204 compatibility \" or \' does not start quote 20596-02-29 use <hashkey.h> 206 drop ungetchr() in ppcall that modified macro values 207 tighten the DEBUG PANIC case in ppcontrol.c 208 unify #architecture() and #machine() probe 209 add POSIX,WIN32,X86 to pp.sym 210 tweak pp.probe 21196-02-14 pp:noallmultiple works on hosted files too 212 fix #define /* EOF loop 21396-01-31 fix ## as arg to stringize macro to have ## value, not # 214 add nonstopux and SYSTYPE_SVR4 to pp.def 21596-01-01 AT&T Research now 216 fix catliteral line sync line number bug 217 ppproto() converts non-directive <num>u to (unsigned)<num> 218 switch to <regex.h> 21995-10-31 fix PP_COMPILE PP_TRANSITION bug that didn't allow space before # 220 fix PP_TRANSITION \newline in definition complaint 22195-10-11 fix ppproto() PROTO_PLUSPLUS bug 222 change ignored pp.incref PP_SYNC_POP to PP_SYNC_IGNORE 223 add PP_PEDANTIC to handle gnu oversights (can't beat em ...) 224 add memfatal() call 225 relax newline in quote semantics 226 proto inline -> __INLINE__ 227 fix __INLINE__ proto def for __GCC__>=2 22895-08-11 pp:preserve for easel (aka IFS) and imake 229 fix pp:reguard ## macro output 230 fix MARK PANIC with CATLITERAL 231 PP_INPUT *.(s|S|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout 232 ppargs() can't use isid() until after FSM_INIT 233 -D#... for assert, -D%... for directives 234 __STRICT_ANSI__ && __GNUC__ requires -pedantic for PP_STRICT 235 #include <.../x> for include_next 23695-05-09 fix tokop() bug that concatenated adjacent strings 237 don't concatenate directive string literals in proto 238 split pp.mode into pp.mode and pp.option 239 restrict pp.probe hostinfo output to the first token 240 fix EOB/EOF pplex() nonterminating loop 241 unused var cleanup 242 add pp:reguard to emit #define and #undef (for C++ templates) 243 add a few ppproto '\r's for NT 244 fix T_BUILTIN ppsymbol -> ppsymkey pun 245 fix pp:stringspan `#define x "' hang 24695-04-01 fix pp:hide for macros defined before the hide 247 fix pp:map getline space canonicalization 248 fix proto `<digits>[uU]' 249 proto does // comments by default (fixes bug introduced 07/17/94) 250 proto does "..." "..." string literal concatenation 251 spice up proto copyright comments for nonexclusive license 252 add hosttype assertion 253 fix proto `typedef type fun(args)' 254 proto copyright finishing touches 255 fix overzealous "empty character constant" message 25695-02-14 pp:nopredefined probe info defines are now pp:builtin 257 clean up pp:hosted conflicts 258 tighten up unknown directive warning 259 PP_INPUT *.(s|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout 260 change newof(0,char,n,0) to newof(0,char,0,n) if 0 init not needed 261 don't emit unkown directives inside #if 0 ... #endif 26295-01-19 *strict-* does not force STRICT 263 token##null-last-variadic-arg consumes token (to match gcc) 264 variadic actuals call be one less than arity (to match gcc) 265 fix PLUSPLUS digraph bug that lost comment state 266 tighten up PLUSPLUS //, /*, */ interaction warnings 267 macro formals in "..." for COMPATIBILITY|TRANSITION 268 macro formals in '...' for COMPATIBILITY|TRANSITION|!STRICT 269 STRINGSPAN allows '\n' in '... too 270 add PP_SYNC_* flags for pp.incref arg 3 271 add PP_SYNC_INSERT for invented file references 272 fix C++ fsm bug that popped out of comment in // /* */ ... 273 PP_INPUT *.(s|S|asm|ASM) implies pp:nocatliteral pp:spaceout 27495-01-01 avoid string literal concatenation in pp.probe #if #predicate() tests 275 fix pplib.h memcpy,strncmp PROTOMAIN prototypes (its a nop tho) 27694-11-11 fix readonly memory reference in refill 277 add C++ digraphs (digraph = --trigraph) 278 add C++ T_EXPLICIT -- did dos take over C++? 279 fix improper ppproto() C++ __PARAM__ expansion 28094-11-01 allow #include string header arg concatenation (yes, its not ansi) 281 #macdef macros are recursive 28294-10-01 fix C++ } loop in ppfsm/refill 283 T_NOISES consumes symbol and optional paren group 284 __builtin_* T_NOISES by default 285 fix "..." "...MARK..." join 286 fix STANDALONE */*comment*/ 28794-09-11 fix pp.probe cp+strip with chmod u+w 28894-08-11 add -I<vdb-archive> to handle pax -x ppar header archives 289 fix -D-Q header checkpoints 290 add `pp:chop prefix' to chop prefix/ from include prefix/*/* 291 add pp:keyargs for key=value macro formals/actuals (not for C!) 29294-06-01 fix ppcontrol/tokop() that botched pp:id, etc. 293 add pp:plussplice to handle cfront // \<newline> ignorance 294 inhibit trigraph conversion for pp:compatibility, duh 295 new C++ keywords enabled by pp:keyword 296 proto: int fun xxx((yyy)) is macro call, not decl 297 fix !ALLMULTIPLE pp:load to SKIP between duplicated line syncs 298 fix PP_DUMP for pp:noallmultiple, optimize pp:load format 299 fix CPP CACHEOUTX() buffer boundary bug 30094-04-01 drop warnings for -X* 301 fix ppproto() %% in comment bug for yacc proto 302 PP_COMMENT now truncates comments to MAXTOKEN-4 30394-03-01 no pp:truncate for #pragma pp:macref 30494-01-01 fix STANDALONE+PP_TRUNCATE fsm macro bug 305 drop __VOID__ from ppproto.c 30693-12-01 release 30793-11-11 fix PP_COMPILE+PP_TRUNCATE=8 bug for continue,unsigned,etc. 308 add PP_LINEBASE for compilers that botch long line sync paths 309 fix #if unsigned promotions 310 aggressive interactive line splice flush 311 fix #else inside multiline null dereference 312 fix "..." newline space # COMPATIBILITY CATLITERAL bug 313 fix m(a)b compatibility token pasting [cpp/test/ess.01.c] 314 fix nested @X mark bug [cpp/test/net.02.c] 31593-10-11 add FSM_COMPATIBILITY for floating point hex -- yo ansi, anybody home 316 add #else if|ifdef|ifndef for COMPATIBILITY but with warning 317 drop PP_HOSTED, add ppop(PP_CDIR|PP_HOSTED,"-",n), -D-I for pp:cdir 31893-10-01 add pp:opspace to tokenize <binop><space>= to <binop>= 31993-08-11 drop ancient BCD constant (`...`) detection -- wake up cfront 320 fix PP_TRUNCATE macro fsm bug that missed some expansions 321 fix stringize bug that choked if space preceded # 322 fix <function-like-macro> <identifier> bug that omitted space 32393-07-17 minor transition mode fix for string concatenation 324 fix standalone macdef line sync buffer bug 325 pp:noline turns off linesync, pp:line restores it 32693-06-22 add pp:prefix to control prefix include compatibility 32793-04-01 use probe_verbose in predefined symbol probe 32893-03-11 close fd after last file block read -- relaxes open fd limit 329 remove pp.control nesting limit 330 add `#rename old new' 331 __STDC__ not defined for plusplus (until they figure it out) 33293-01-22 fix ansi macro args recursion bug 33393-01-11 fix '\377'<0 for signed char compilers 334 add RELAX for __STDPP__directive directives 33592-12-25 fix #include guard test that omitted IN_tokens for CPP=1 33692-12-11 fix pp:truncate for STANDALONE and COMPILE 337 fix pp:allmultiple again! 33892-11-30 add pp:final, pp:initial 339 add __STDPP__directive and #(directive) as ??= alternative 340 relax obsolete macro expand warning for _xxx||xxx 341 retain quoted \newline when PP_LINEID != "" 342 fix CATLITERAL hidden newline line sync 34392-11-11 fix COMPATIBILITY EOF in macro arg list and # in macro body 344 fix [?\] on 4K buffer boundary bug that lost next refill() 345 fix ppproto bug that botched -ih comments 34692-10-31 fix standalone -C bug that duplicated output buffer 347 add pp:stringspan to handle gnu "<newline>" extension 34892-10-12 fix T_X_GROUP asm bug 349 allow `#define a "b' pp:compatibility hack 35092-08-11 add PP_PLUSCOMMENT, pp:pluscomment probe 351 add #(default v,d) #(empty v) #(iterate m,...) 352 compatibility allows #define f(a,,b) for 2 args! 353 probe now handles gcc -E -g3 to get gnu predefines 35492-07-17 fix pp:multiple again, fix ppproto() out of bounds 355 PP_STANDARD is always PP_CDIR and PP_HOSTED 35692-07-11 add #import and #include_next probes 35792-06-11 fix bug where comments dissappeared after disabled macro in standalone 358 COMPATIBILITY macro recursion bug fix may cause some to be missed 359 PP_MACREF or -D-L- ignores #line until #line with file arg 36092-06-01 add pp:ignore 361 fix probe of stdpp to handle -I[-+][CH] 36292-05-11 add pp:hide <id>, pp:note <id>, noticed(<id>), exists(<...>) 363 add defined(__STDPP__<pragma>) feature test 364 add PP_CDIR, pp:cdir for C++ extern "C" { ... } include wrapping 365 pp.probe now handles predefines with values other than 1 36692-04-11 add inverse proto (K&R -> prototype) to ppproto 36792-04-01 release 36892-02-29 #include <...> inside <xxx.h> gets next xxx.h on -I list 369 non-libpp generated symbols containing ' ' are not truncated 37092-02-11 conversion to new lexer brings time close to reiser (esp. w/gcc -O) 371 combine standalone (ppcpp) tokenizing (pplex) and proto lex tables 372 recode ppproto for standalone operation via PROTOMAIN 373 add PP_NOHASH for PP_COMPILE front ends that rehash T_ID anyway 374 delete PP_NOQUOTE 375 delete #option(strict) test in probe in favor of non-hosted warnings 376 add unsigned to ppexpr() 37791-10-11 add pp:truncate <len> for non-flexname compilers 37891-09-11 fix ppproto aggression on f(*y); -> f __PROTO__((*y)); 37991-08-11 switch seterror() to error_info.* 380 add pp:linefile to force file name in line sync 381 add pp:spaceout for probed compilers that don't allow pp override 38291-06-11 fix ignored -I/usr/include bug 38391-04-11 set SYM_INIT in pp.macref for -U on cmd line 38491-01-31 replace pp:pragma and pp:directive with pp:map 385 replace #assert and #unassert with #define #... and #undef #... 386 #assert and #unassert compatibility retained via pp:map 387 replace -D#directive with -D%directive (because of #assert change) 388 add pp:splicecat for \<newline> #define token paste 389 fix \<newline> bug that added space in COMPATIBILITY quoted strings 39090-12-11 fix #pragma pp:multiple 39190-11-11 generalize handling of non-standard keywords for COMPILE 392 replace pp:identifier/PP_IDENTIFIER with pp:reserved/PP_RESERVED 393 pp*keys* -> ppkey 394 add PP_NOISE 395 (gag) handle msdos paths by changing \ to / and retrying on failure 396 (gag) handle msdos :> operator by pplex() '+' return 397 add #pragma prototyped and ppproto.c for prototype conversion 398 add unsigned long arg to PP_MACREF for hashed macro arity+value 39990-10-11 0f is not a float constant 400 change -I-M to -I-I, file just lists include files to be ignored 401 fix ppprobe for __STDC__==0 hybrids 402 add pp.flags and PP_[a-z0-9]+ for exported state info 40390-10-01 fix standalone ppmacref for directives 404 add `try' to C++ keywords 405 fine tune a few COMPILE error messages 406 privatize pp.h 40790-08-11 use opt_again in cmdargs() option parsers 408 (gag) add pp:macref macro reference pragma to handle CC preprocessors 409 (gag) add pp:spaceout to handle ansi + asm hacks 41090-07-17 remove spaces from macdef line sync (blew sun cc) 41190-06-11 add internal ppsymkey to avoid ppsymbol.value pun for SYM_KEYWORD 41290-05-01 fix catliteral bug of `"..." << ' -> `"..." <=' 41390-04-01 fix `ifndef-define-endif' include wrapper test 41490-03-27 add setpreroot() to ppop() [ sleazy but well hidden ] 41590-03-22 pp.macref called for all undef's 41690-03-20 add <prefix>cpp checks to ppprobe 417 add pp:hostdir before pp:include in ppprobe 418 fix PP_HOSTDIR op with no dir arg 41990-03-15 System V CCS compatibility update 420 add PP_ASSERT 421 add -A for PP_ASSERT and -YI,dir for PP_STANDARD 422 add ppincref.c and -H to use it 423 -Xa defines __STDC__ to 0 (gak) 42490-03-09 duplicate macro formals cause level 2 error 42590-03-01 add #(ARGC) for (variadic) macro arg count 42690-02-11 fix line sync number bug in pppush() 42789-12-01 ignore leading = in pragma map for old pragma compatibility 428 check for NEWLINE on first macdef line sync 42989-11-11 add -1 arg to pp.incref -- include skipped 430 STRICT 0x7e-macro is T_INVALID per standard 43189-10-31 put all C keys in ppckeys.c, C++ keys in pppkeys.c 432 add pp:identifier pragma to selectively undo PP_COMPILE keywords 433 add tokop() to ppcontrol to support multi-valued pragmas 434 add #ifndef...#endif include optimization for STRICT 43589-10-27 use REF_NORMAL, REF_IF, REF_UNDEF for pp.macref arg2 43689-10-17 fix c(x)y compatibility pasting bug 437 #line 1 "f" now marks "f" included 43889-10-11 enable -I. during initialization 43989-10-01 inhibit pp:linetype syncs for top level #line directives 440 ----- see HISTORY ----- 441