112-06-06 ppline.c: preserve hosted sync even for normal sync 212-02-29 pp.probe: handle predefined function-like macro definitions 312-02-14 ppproto.c: fix "already noticed" logic 411-08-30 ppproto.c: bump BLOCK to 16*1024 for (ppargs.c self-doc!) 511-03-15 ppop.c: add ppok() readonly check for subset of ppop(PP_*) 611-03-02 ppop.c,ppcontrol.c: use ppset() to handle readonly values 710-09-01 RE errors => exit(2) 810-09-01 ppcall.c: no disgnostic for 0 actual args for 1 formal arg 910-06-29 ppargs.c: ignore -H<number> (hpux /opt/langtools/lbin/cpp.ansi) 1010-06-16 ppsearch.c: try parent prefix if -I- include search fails 1110-06-01 sync with ast api 20100601 1209-02-02 pp.probe,probe.win32: check for compiler supplied __FUNCTION__ 1309-02-02 ppop.c: include pp_default.h/probe at end of builtin script 1409-01-20 probe.win32: elide #pragma comment.*linker.*manifest 1509-01-06 ppcall.c: fix macro definition overwrite bug -- I know 1609-01-05 ppcontrol.c: fix multiple include guard for #include outside guard 1708-12-07 pp.h,ppdata.c: fix ancient pptype and ppctype[] off by one 1808-11-15 ppsearch.c: '\\' => '/' in first step; msvc complains about '\\' in #line!! 1908-10-31 ppsearch.c: relax pp:nomultiple pedantry 2008-10-30 pplex.c: handle =#x S_CHRB|SPLICE bug 2108-05-11 ppproto.c: fix proto test 10 regression 2207-09-21 ppproto.c: add "Public Domain" to the noticed list 2307-08-11 probe.win32: add cl.exe setuid workaround, CC.VERSION[.STRING] 2407-06-12 pplex.c: finish -D:preserve logic update for imake 2507-06-07 pplex.c: handle -D:preserve S_CHRB splices 2607-06-04 ppsearch.c: only apply pp:chop ?old?new? if original not found 2707-03-11 add -D-Y pp:pedantic, PP_WARN macro formal parenthesis checks 2807-01-26 pp.def,probe.win32: add _WCHAR_T_DEFINED 2906-09-23 ppop.c: check -I <dev,ino> for c and TYPE_HOSTED|TYPE_VENDOR attrs 3006-09-23 pplex.c: add HOSTED check for "/* appears in // comment" -- doh 3106-09-05 pp.probe: add version stamp comment 3206-06-29 pp.probe: gcc pp:linefile probe (otherwise it can dump!) 3306-06-28 ppproto.c: fix inappropriate __PARAM__ insertion 3406-05-09 pp.tab,ppcontrol.c,ppproto.c: add externalize 35 ppfsm.c: handle compatibility ul numeric qualifiers 3606-02-28 probe.win32: add wchar_t probe 3706-01-11 pplex.c: fix rpcgen pp:passthrough header splice bug 3805-12-16 pplex.c: fix imake pp:passthrough comment splice bug 3905-09-16 pplib.h: add <string.h> for standalone proto 4005-07-31 pplib.h: finally trust __STDC__ headers 4105-04-11 pplex.c: fix '"a" #s' catliteral + stringize bug 4205-03-29 pp.probe: check $? and stderr messages for pp:lineid 4305-02-20 probe.win32: handle /platformsdk mount 4405-01-11 ppargs.c: fix -I-S docs 45 ppinput.c: ppproto() only for COMPATIBILITY or PLUSPLUS 4604-10-22 ppproto.c: handle `type var[x][y]' arg prototype 4704-10-01 pplex.c: really fix directive hidden newline logic 4804-08-31 pplex.c: fix directive hidden newline logic 49 ppcall.c: fix '(' peek bug that missed the MARK 5004-08-30 add pragma pp:pragmaflags PP_PRAGMAFLAGS, pp:system_header 5104-08-11 ppproto.c: intercept "#(define|undef) extern" for __(EX|IM)PORT__ 5204-07-23 probe.win32: generalize #include dir order search 5304-07-22 ppsearch.c: access() => eaccess() 5404-05-20 ppproto.c: don't __PROTO__ `int fun __P((int));' 5504-04-15 probe.win32: sync up with uwin 2003-08-06 master -- oops 5604-04-01 pp.probe: add stdinclude usrinclude path cleanup 5704-02-29 ppproto.c: fix bug that skipped prototyped check during notices check 58 ppproto.c: recognize `Copyright nn' 5904-02-14 ppproto.c: comment[0]==0 => no notice 6004-02-11 Makefile: fix %.yacc to handle cross-compile 6104-01-28 pp.h,pplib.h,ppop.c: add PP_RESET to restore original pp.symtab scope 6203-12-12 ppcall.c: missing macro actual warned but expanded 6303-11-12 ppexpr.c: fix premature #if expression token strip 6403-06-21 ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL 6503-06-10 ppargs.c: add -D-d and -D-m 66 ppargs.c: add gnu options { -dD -dM -imacros -include -lang-* -lint } 6703-05-19 pplex.c: fix stray SKIPMACRO bug 6803-05-18 ppcall.c: add SYM_FUNCTION '(' peek to avoid inappropriate ungetchr() 6903-04-30 pp:mapinclude hosted <std.h>="." will search only hosted dirs 70 pp.probe: add pp:mapinclude probe for namespace incursions 7103-04-29 ignore()=>ppmapinclude(), add pp:mapinclude 7203-03-25 ppop.c: PP_RESERVED now deletes old symbol before redef with lex value 7303-03-14 pp.probe: fix the #include_next probe 7403-02-28 ppsearch.c: fix -MM bug that missed prefix include hosted mark 7503-02-18 pplex.c: handle COMPATIBILITY \" and \' in macro actuals 7603-01-23 probe.win32: mingw32 tweaks 7702-12-17 ppargs.c: document -I-! 7802-12-06 -I- pp:noprefix otherwise pp:prefix default 7902-11-29 probe.win32: added __INTSIZE, drop dm pp:noallmultiple 8002-11-26 pp.def: add STDC_HOSTED 81 probe.win32: add C95 and C99 STDC predefined macros 8202-10-30 ppfsm.h: add boundary check to IDSTATE() 8302-10-18 probe.win32: update for mingw 8402-10-15 ppsearch.c: if PLUSPLUS && not found && no suffix then try with .h 8502-10-10 pplex.c: fix does not end with `newline' bugs 8602-10-01 ppop.c,ppargs.c: -I-I => -I-M with proper docs; -I-I for PP_IGNORE 8702-09-21 pp.probe: add pp:nocatliteral test 8802-09-10 pp.tab: add pp:passthrough to match -D-P docs 8902-08-30 probe.win32: fix for borland cc -E 9002-08-22 ppexpr.c: add __SOURCE__ and #match(string,pattern) 9102-06-25 ppproto.c: fix pragma search bug that stopped after 8 comment lines 9202-06-11 ppsearch.c: fix ... next include search to skip *all* intermediates 9302-05-28 probe.win32: updates for { mingw } 94 ppsearch.c: don't use inherited prefix for <...> -- duh 9502-05-24 ppcontrol.c: simplify getline() space canonicalization 96 probe.win32: updates for { digital-mars borland lcc } 9702-05-20 ppcontrol.c: update to use regsubcomp(),regsubexec() 9802-05-09 ppcontrol.c: inhibit `EOF in directive': newline warning will catch it 99 pplex.c: inhibit `newline in character constant' for hosted directives 10002-05-06 probe.win32: add more win32 compilers 10102-04-15 probe.win32: handle long long unsigned int 10202-04-12 ppproto.c: fix NOTICED check 10302-03-15 ppproto.c: fix cpp pp:compatibility double line sync memory fault 10402-03-11 pplex.c: add pp:modern to emit \a \v instead of octal forms 10502-02-14 ppargs.c: fix -D or -U as last arg core dump 10602-01-24 pplib.h: use vmalloc(Vmregion) if _std_malloc 10702-01-23 probe.win32: add more msvc predefined macro candidates 10802-01-14 ppproto.c: #pragma prototyped noticed -- has notice comment 10902-01-10 ppproto.c: fix PROTO_FORCE|PROTO_PASS bug that disabled PROTO_FORCE 11002-01-08 pplex.c: fix HEADEREXPAND|HEADEREXPANDALL logic 11101-11-22 pplex.c: add pp:headerexpandall for gcc vs. msvc <...> expand diff 112 pp.probe: add pp:headerexpandall test 11301-10-20 pplex.c: fix pp:splicespace inside "..." 11401-09-11 ppinput.c: use pathnative() for native fs representation 11501-08-31 pp.probe: handle -Dmacro(args)=value 11601-08-11 ppcontrol: fix ... and __VAR_ARGS__ for C99 117 ppsearch: fix SEARCH_NEXT bug that skipped the include stack 11801-08-06 ppproto: preserve #! first line for # comments 11901-07-17 gentab.sh: fix ksh test to omit pdksh (typeset -u fails) 12001-06-26 ppproto.c: fix another buffer boundary bug that didn't preserve OTHER 12101-06-06 ppsearch.c: list PP_FILEDEPS headers once 12201-06-01 pp.h,ppop.c,ppsearch.c: allow multiple PP_FILEDEPS (-M) 12301-05-24 pp.probe: fix pp:hostedtransition probe: only suncc can __STDC__==1? 12401-04-25 pp.probe: split macro probe files for compilers that have #line limits 12501-04-19 pp.h,pplex.c,ppproto.c: fix { \a \E \v } EBCDIC translations 12601-04-16 pp.tab: add pp:splicespace for mvs jcl decks -- the 60's live on 12701-04-13 ppbuiltin: add __FUNCTION__ cache for functions that span the buffer 12801-03-08 pp.tab,ppbuiltin,ppcontrol,probe: add pp:hostedtransition 12901-02-22 pp.tab,ppfsm,pplex,pp.probe,probe.win32: add pp:zeof for ^Z => EOF 13001-02-14 ppcall.c: fix macro(tuple*) bug that truncated macro arg expand buffer 131 pplex.c: fix # inside pp:pragmaexpand 132 gentab.sh: change ksh test for openbsd /bin/sh 133 ppproto.c: fix buffer boundary bug that lost call nesting 134 ppproto.c: add realloc prototype and memcpy=>memcopy strcpy=>strcopy 13501-02-09 ppsearch.c: fix another pp.include null dereference 13601-02-07 ppcall.c: fix stack inequality checks 137 ppcall.c: handle trailing \ in macro args 13801-02-06 fix readonly buffer write (cpp test 07:2873) 13901-02-04 fix -M* to properly handle .cxx .cpp .C input 140 fix IN_BUFFER pop bug that did not reset the token pointer 14101-01-01 pp:headerexpand: space ok if not IN_MACRO 142 ppcall: hide if IN_FILE|IN_MACRO|IN_EXPAND 143 pplex: don't complain about ^L or ^Z as last char in file 144 ppsearch: fix #include <.../foo.h> loop 145 ppcontrol: manulally increment IN_RESCAN error_info.line 14600-12-25 add EXPOSE to expose hidden macros (for #import ...) 147 probe.win32: add cc path *and* args to first line to avoid hash clash 148 pp.probe: filter out invalid symbols for predefined macro scan, duh 149 pp:headerexpand: limit expansion to IN_MACRO 15000-10-31 __STDC__==0 if HOSTED && _UWIN 15100-10-26 pplib.h: change SEEK_SET to O_RDONLY for aix 15200-10-17 pp.probe: __IMPORT__ => __STDPP__IMPORT__ 15300-09-18 add __FUNCTION__=#(FUNCTION), #define <a b> c 154 pp.probe: add probe_longlong 155 probe.win32: add #define <long long> 15600-09-11 add pp:noproto (NOPROTO pp.option) to disable ppproto() 15700-09-01 ppproto: fix buffer slide bug 15800-08-11 pplb.h: check for <unistd.h> already included for PROTOMAIN 159 pragma: add pp:pragmaexpand to expand pragma args 160 ppcontrol: always disable pp:* pragma expansion 161 ppcall: fix pp:hide buffer clash 16200-06-01 pplex: fix "\\U" and "\\u" 16300-05-22 ppsearch: fix uwin #include <C:/foo/bar.h> 16400-05-16 probe.win32: update reserved word list 16500-05-09 ppcontrol: fix C++ macro >+> invalid fuse 166 ppcontrol: 'macro' expansion only for COMPATIBILITY | TRANSITION 167 c9x: up to date with proposed standard 16800-04-01 pp.tab: add allpossible and ALLPOSSIBLE 169 ppmacref: fix ref inside literal catenation 17000-02-14 pppopen(): general comments with "bme" (begin middle end) string 17100-01-11 pp.probe: hosttype now in C.probe 17299-11-19 is[a-z]*( => ppis[a-z]*( 173 ppproto: "..." [A-Z_]+ "..." ignores [A-Z_]+ if PROTOMAIN 17499-11-11 ppproto: use astlicense() 17599-10-31 ppproto: add PROTO_SHARP, update license parse 176 pplex: fix some MARK bugs seen by #define X "A B <C@D>" 17799-10-01 add pp:stringsplit for "...\\n..." => "..."\n"..." 178 add pp:lineid to match PP_LINEID 17999-07-17 ppbuiltin: fix getline() canon spacing for numbers 180 ppsearch: fix FILEDEPS not found \\n print 181 pplex: fix spurious FILEDEPS '.' empty character constant message 182 ppargs: fix usage error call and error_info.id default value 183 ppproto: fix up copyright notice for ksh93 style .author file 184 ppproto: check if notice text if file path 18599-06-02 ppproto: add __MANGLE_package_DATA__ & __MANGLE_package_FUNC__ 18699-05-26 ppcontrol: all pragmas but prototyped need pp: 18799-05-25 ppargs: long options 18899-05-22 ppproto: changes for full ast vs. PROTO_STANDALONE 18999-05-09 ppinput: add #pragma pp:native and (pp.option&NATIVE) for native paths 19099-04-22 ppproto: finish type=open notice 19199-02-11 #define __STDC__ #(STDC); demote __STDC__ to 0 for HOSTED (thanks sun) 19299-02-04 pplex: joined strings separated by \\\n 19399-01-11 probe.win32: add _UWIN predef 19498-10-20 pplex: a few more (HOSTED|RELAX) checks 195 -D:preserve throws a bunch of stuff -- great for imake (yuk) 19698-05-11 pplex: fix "..." \n off by one line count 19798-02-14 ppcontrol: fix HEADEREXPAND missing NUL 19898-01-23 ppproto: add _GNUC_ to _WIN32 check 199 ppfsm: don't optimize for hp.pa 20097-11-11 ppcontrol: fix recursive use of pp.hdrbuf for HEADEREXPAND 20197-10-31 ppmacref,pp.h: add ppmacref sum arg -- some parts assumed it! 20297-10-01 pplex: loosen HEADEREXPAND check 20397-08-11 pplex: fix COMPILE pplex() bug that did not reset NEWLINE for S_MACRO 204 pplex: PP_PRESERVE does not pp.pragma <token> ... # <pragma-stuff> 205 pp.def: add UWIN 206 ppcall: fix macro actual arg error checks 20797-07-17 ppproto.c: C++ __INLINE__ prefixed with extern __MANGLE__ 208 ppop.c: fix PP_RESERVED T_* lookup 20997-05-09 pp.def: add MVS :architecture: 210 ppfsm.c: change C_* pseudo codes to not clash with ebcdic 211 pp.probe: fix stdc.$src sed script 21297-04-01 ppcontrol.c: fix tokop() for PP_RESERVED 21396-12-25 add ms #@ charize to complement # stringize 214 pp.probe now detects preincludes 215 ppproto: allow #ifdef'd function definions before { 216 ppproto: NoN() is not a function 217 pp.key,ppkey.h: add int64 218 ppargs.c: fix -M{DGM}* 21996-12-06 add pp:headerexpand for ms that expands macros in expanded <...> 22096-10-31 a few more line sync tweaks for EDG C++ 22196-10-11 fix pp:macref off by one for standalone pp (big suprise) 22296-10-01 -D:macref -D-L -> #line (n-2)\n#pragma pp:macref ... 22396-08-11 fix transition macro expansion 224 compatibility \" or \' does not start quote 22596-02-29 use <hashkey.h> 226 drop ungetchr() in ppcall that modified macro values 227 tighten the DEBUG PANIC case in ppcontrol.c 228 unify #architecture() and #machine() probe 229 add POSIX,WIN32,X86 to pp.sym 230 tweak pp.probe 23196-02-14 pp:noallmultiple works on hosted files too 232 fix #define /* EOF loop 23396-01-31 fix ## as arg to stringize macro to have ## value, not # 234 add nonstopux and SYSTYPE_SVR4 to pp.def 23596-01-01 AT&T Research now 236 fix catliteral line sync line number bug 237 ppproto() converts non-directive <num>u to (unsigned)<num> 238 switch to <regex.h> 23995-10-31 fix PP_COMPILE PP_TRANSITION bug that didn't allow space before # 240 fix PP_TRANSITION \newline in definition complaint 24195-10-11 fix ppproto() PROTO_PLUSPLUS bug 242 change ignored pp.incref PP_SYNC_POP to PP_SYNC_IGNORE 243 add PP_PEDANTIC to handle gnu oversights (can't beat em ...) 244 add memfatal() call 245 relax newline in quote semantics 246 proto inline -> __INLINE__ 247 fix __INLINE__ proto def for __GCC__>=2 24895-08-11 pp:preserve for easel (aka IFS) and imake 249 fix pp:reguard ## macro output 250 fix MARK PANIC with CATLITERAL 251 PP_INPUT *.(s|S|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout 252 ppargs() can't use isid() until after FSM_INIT 253 -D#... for assert, -D%... for directives 254 __STRICT_ANSI__ && __GNUC__ requires -pedantic for PP_STRICT 255 #include <.../x> for include_next 25695-05-09 fix tokop() bug that concatenated adjacent strings 257 don't concatenate directive string literals in proto 258 split pp.mode into pp.mode and pp.option 259 restrict pp.probe hostinfo output to the first token 260 fix EOB/EOF pplex() nonterminating loop 261 unused var cleanup 262 add pp:reguard to emit #define and #undef (for C++ templates) 263 add a few ppproto '\r's for NT 264 fix T_BUILTIN ppsymbol -> ppsymkey pun 265 fix pp:stringspan `#define x "' hang 26695-04-01 fix pp:hide for macros defined before the hide 267 fix pp:map getline space canonicalization 268 fix proto `<digits>[uU]' 269 proto does // comments by default (fixes bug introduced 07/17/94) 270 proto does "..." "..." string literal concatenation 271 spice up proto copyright comments for nonexclusive license 272 add hosttype assertion 273 fix proto `typedef type fun(args)' 274 proto copyright finishing touches 275 fix overzealous "empty character constant" message 27695-02-14 pp:nopredefined probe info defines are now pp:builtin 277 clean up pp:hosted conflicts 278 tighten up unknown directive warning 279 PP_INPUT *.(s|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout 280 change newof(0,char,n,0) to newof(0,char,0,n) if 0 init not needed 281 don't emit unkown directives inside #if 0 ... #endif 28295-01-19 *strict-* does not force STRICT 283 token##null-last-variadic-arg consumes token (to match gcc) 284 variadic actuals call be one less than arity (to match gcc) 285 fix PLUSPLUS digraph bug that lost comment state 286 tighten up PLUSPLUS //, /*, */ interaction warnings 287 macro formals in "..." for COMPATIBILITY|TRANSITION 288 macro formals in '...' for COMPATIBILITY|TRANSITION|!STRICT 289 STRINGSPAN allows '\n' in '... too 290 add PP_SYNC_* flags for pp.incref arg 3 291 add PP_SYNC_INSERT for invented file references 292 fix C++ fsm bug that popped out of comment in // /* */ ... 293 PP_INPUT *.(s|S|asm|ASM) implies pp:nocatliteral pp:spaceout 29495-01-01 avoid string literal concatenation in pp.probe #if #predicate() tests 295 fix pplib.h memcpy,strncmp PROTOMAIN prototypes (its a nop tho) 29694-11-11 fix readonly memory reference in refill 297 add C++ digraphs (digraph = --trigraph) 298 add C++ T_EXPLICIT -- did dos take over C++? 299 fix improper ppproto() C++ __PARAM__ expansion 30094-11-01 allow #include string header arg concatenation (yes, its not ansi) 301 #macdef macros are recursive 30294-10-01 fix C++ } loop in ppfsm/refill 303 T_NOISES consumes symbol and optional paren group 304 __builtin_* T_NOISES by default 305 fix "..." "...MARK..." join 306 fix STANDALONE */*comment*/ 30794-09-11 fix pp.probe cp+strip with chmod u+w 30894-08-11 add -I<vdb-archive> to handle pax -x ppar header archives 309 fix -D-Q header checkpoints 310 add `pp:chop prefix' to chop prefix/ from include prefix/*/* 311 add pp:keyargs for key=value macro formals/actuals (not for C!) 31294-06-01 fix ppcontrol/tokop() that botched pp:id, etc. 313 add pp:plussplice to handle cfront // \<newline> ignorance 314 inhibit trigraph conversion for pp:compatibility, duh 315 new C++ keywords enabled by pp:keyword 316 proto: int fun xxx((yyy)) is macro call, not decl 317 fix !ALLMULTIPLE pp:load to SKIP between duplicated line syncs 318 fix PP_DUMP for pp:noallmultiple, optimize pp:load format 319 fix CPP CACHEOUTX() buffer boundary bug 32094-04-01 drop warnings for -X* 321 fix ppproto() %% in comment bug for yacc proto 322 PP_COMMENT now truncates comments to MAXTOKEN-4 32394-03-01 no pp:truncate for #pragma pp:macref 32494-01-01 fix STANDALONE+PP_TRUNCATE fsm macro bug 325 drop __VOID__ from ppproto.c 32693-12-01 release 32793-11-11 fix PP_COMPILE+PP_TRUNCATE=8 bug for continue,unsigned,etc. 328 add PP_LINEBASE for compilers that botch long line sync paths 329 fix #if unsigned promotions 330 aggressive interactive line splice flush 331 fix #else inside multiline null dereference 332 fix "..." newline space # COMPATIBILITY CATLITERAL bug 333 fix m(a)b compatibility token pasting [cpp/test/ess.01.c] 334 fix nested @X mark bug [cpp/test/net.02.c] 33593-10-11 add FSM_COMPATIBILITY for floating point hex -- yo ansi, anybody home 336 add #else if|ifdef|ifndef for COMPATIBILITY but with warning 337 drop PP_HOSTED, add ppop(PP_CDIR|PP_HOSTED,"-",n), -D-I for pp:cdir 33893-10-01 add pp:opspace to tokenize <binop><space>= to <binop>= 33993-08-11 drop ancient BCD constant (`...`) detection -- wake up cfront 340 fix PP_TRUNCATE macro fsm bug that missed some expansions 341 fix stringize bug that choked if space preceded # 342 fix <function-like-macro> <identifier> bug that omitted space 34393-07-17 minor transition mode fix for string concatenation 344 fix standalone macdef line sync buffer bug 345 pp:noline turns off linesync, pp:line restores it 34693-06-22 add pp:prefix to control prefix include compatibility 34793-04-01 use probe_verbose in predefined symbol probe 34893-03-11 close fd after last file block read -- relaxes open fd limit 349 remove pp.control nesting limit 350 add `#rename old new' 351 __STDC__ not defined for plusplus (until they figure it out) 35293-01-22 fix ansi macro args recursion bug 35393-01-11 fix '\377'<0 for signed char compilers 354 add RELAX for __STDPP__directive directives 35592-12-25 fix #include guard test that omitted IN_tokens for CPP=1 35692-12-11 fix pp:truncate for STANDALONE and COMPILE 357 fix pp:allmultiple again! 35892-11-30 add pp:final, pp:initial 359 add __STDPP__directive and #(directive) as ??= alternative 360 relax obsolete macro expand warning for _xxx||xxx 361 retain quoted \newline when PP_LINEID != "" 362 fix CATLITERAL hidden newline line sync 36392-11-11 fix COMPATIBILITY EOF in macro arg list and # in macro body 364 fix [?\] on 4K buffer boundary bug that lost next refill() 365 fix ppproto bug that botched -ih comments 36692-10-31 fix standalone -C bug that duplicated output buffer 367 add pp:stringspan to handle gnu "<newline>" extension 36892-10-12 fix T_X_GROUP asm bug 369 allow `#define a "b' pp:compatibility hack 37092-08-11 add PP_PLUSCOMMENT, pp:pluscomment probe 371 add #(default v,d) #(empty v) #(iterate m,...) 372 compatibility allows #define f(a,,b) for 2 args! 373 probe now handles gcc -E -g3 to get gnu predefines 37492-07-17 fix pp:multiple again, fix ppproto() out of bounds 375 PP_STANDARD is always PP_CDIR and PP_HOSTED 37692-07-11 add #import and #include_next probes 37792-06-11 fix bug where comments dissappeared after disabled macro in standalone 378 COMPATIBILITY macro recursion bug fix may cause some to be missed 379 PP_MACREF or -D-L- ignores #line until #line with file arg 38092-06-01 add pp:ignore 381 fix probe of stdpp to handle -I[-+][CH] 38292-05-11 add pp:hide <id>, pp:note <id>, noticed(<id>), exists(<...>) 383 add defined(__STDPP__<pragma>) feature test 384 add PP_CDIR, pp:cdir for C++ extern "C" { ... } include wrapping 385 pp.probe now handles predefines with values other than 1 38692-04-11 add inverse proto (K&R -> prototype) to ppproto 38792-04-01 release 38892-02-29 #include <...> inside <xxx.h> gets next xxx.h on -I list 389 non-libpp generated symbols containing ' ' are not truncated 39092-02-11 conversion to new lexer brings time close to reiser (esp. w/gcc -O) 391 combine standalone (ppcpp) tokenizing (pplex) and proto lex tables 392 recode ppproto for standalone operation via PROTOMAIN 393 add PP_NOHASH for PP_COMPILE front ends that rehash T_ID anyway 394 delete PP_NOQUOTE 395 delete #option(strict) test in probe in favor of non-hosted warnings 396 add unsigned to ppexpr() 39791-10-11 add pp:truncate <len> for non-flexname compilers 39891-09-11 fix ppproto aggression on f(*y); -> f __PROTO__((*y)); 39991-08-11 switch seterror() to error_info.* 400 add pp:linefile to force file name in line sync 401 add pp:spaceout for probed compilers that don't allow pp override 40291-06-11 fix ignored -I/usr/include bug 40391-04-11 set SYM_INIT in pp.macref for -U on cmd line 40491-01-31 replace pp:pragma and pp:directive with pp:map 405 replace #assert and #unassert with #define #... and #undef #... 406 #assert and #unassert compatibility retained via pp:map 407 replace -D#directive with -D%directive (because of #assert change) 408 add pp:splicecat for \<newline> #define token paste 409 fix \<newline> bug that added space in COMPATIBILITY quoted strings 41090-12-11 fix #pragma pp:multiple 41190-11-11 generalize handling of non-standard keywords for COMPILE 412 replace pp:identifier/PP_IDENTIFIER with pp:reserved/PP_RESERVED 413 pp*keys* -> ppkey 414 add PP_NOISE 415 (gag) handle msdos paths by changing \ to / and retrying on failure 416 (gag) handle msdos :> operator by pplex() '+' return 417 add #pragma prototyped and ppproto.c for prototype conversion 418 add unsigned long arg to PP_MACREF for hashed macro arity+value 41990-10-11 0f is not a float constant 420 change -I-M to -I-I, file just lists include files to be ignored 421 fix ppprobe for __STDC__==0 hybrids 422 add pp.flags and PP_[a-z0-9]+ for exported state info 42390-10-01 fix standalone ppmacref for directives 424 add `try' to C++ keywords 425 fine tune a few COMPILE error messages 426 privatize pp.h 42790-08-11 use opt_again in cmdargs() option parsers 428 (gag) add pp:macref macro reference pragma to handle CC preprocessors 429 (gag) add pp:spaceout to handle ansi + asm hacks 43090-07-17 remove spaces from macdef line sync (blew sun cc) 43190-06-11 add internal ppsymkey to avoid ppsymbol.value pun for SYM_KEYWORD 43290-05-01 fix catliteral bug of `"..." << ' -> `"..." <=' 43390-04-01 fix `ifndef-define-endif' include wrapper test 43490-03-27 add setpreroot() to ppop() [ sleazy but well hidden ] 43590-03-22 pp.macref called for all undef's 43690-03-20 add <prefix>cpp checks to ppprobe 437 add pp:hostdir before pp:include in ppprobe 438 fix PP_HOSTDIR op with no dir arg 43990-03-15 System V CCS compatibility update 440 add PP_ASSERT 441 add -A for PP_ASSERT and -YI,dir for PP_STANDARD 442 add ppincref.c and -H to use it 443 -Xa defines __STDC__ to 0 (gak) 44490-03-09 duplicate macro formals cause level 2 error 44590-03-01 add #(ARGC) for (variadic) macro arg count 44690-02-11 fix line sync number bug in pppush() 44789-12-01 ignore leading = in pragma map for old pragma compatibility 448 check for NEWLINE on first macdef line sync 44989-11-11 add -1 arg to pp.incref -- include skipped 450 STRICT 0x7e-macro is T_INVALID per standard 45189-10-31 put all C keys in ppckeys.c, C++ keys in pppkeys.c 452 add pp:identifier pragma to selectively undo PP_COMPILE keywords 453 add tokop() to ppcontrol to support multi-valued pragmas 454 add #ifndef...#endif include optimization for STRICT 45589-10-27 use REF_NORMAL, REF_IF, REF_UNDEF for pp.macref arg2 45689-10-17 fix c(x)y compatibility pasting bug 457 #line 1 "f" now marks "f" included 45889-10-11 enable -I. during initialization 45989-10-01 inhibit pp:linetype syncs for top level #line directives 460 ----- see HISTORY ----- 461