106-09-23 ppop.c: check -I <dev,ino> for c and TYPE_HOSTED|TYPE_VENDOR attrs 206-09-23 pplex.c: add HOSTED check for "/* appears in // comment" -- doh 306-09-05 pp.probe: add version stamp comment 406-06-29 pp.probe: gcc pp:linefile probe (otherwise it can dump!) 506-06-28 ppproto.c: fix inappropriate __PARAM__ insertion 606-05-09 pp.tab,ppcontrol.c,ppproto.c: add externalize 7 ppfsm.c: handle compatibility ul numeric qualifiers 806-02-28 probe.win32: add wchar_t probe 906-01-11 pplex.c: fix rpcgen pp:passthrough header splice bug 1005-12-16 pplex.c: fix imake pp:passthrough comment splice bug 1105-09-16 pplib.h: add <string.h> for standalone proto 1205-07-31 pplib.h: finally trust __STDC__ headers 1305-04-11 pplex.c: fix '"a" #s' catliteral + stringize bug 1405-03-29 pp.probe: check $? and stderr messages for pp:lineid 1505-02-20 probe.win32: handle /platformsdk mount 1605-01-11 ppargs.c: fix -I-S docs 17 ppinput.c: ppproto() only for COMPATIBILITY or PLUSPLUS 1804-10-22 ppproto.c: handle `type var[x][y]' arg prototype 1904-10-01 pplex.c: really fix directive hidden newline logic 2004-08-31 pplex.c: fix directive hidden newline logic 21 ppcall.c: fix '(' peek bug that missed the MARK 2204-08-30 add pragma pp:pragmaflags PP_PRAGMAFLAGS, pp:system_header 2304-08-11 ppproto.c: intercept "#(define|undef) extern" for __(EX|IM)PORT__ 2404-07-23 probe.win32: generalize #include dir order search 2504-07-22 ppsearch.c: access() => eaccess() 2604-05-20 ppproto.c: don't __PROTO__ `int fun __P((int));' 2704-04-15 probe.win32: sync up with uwin 2003-08-06 master -- oops 2804-04-01 pp.probe: add stdinclude usrinclude path cleanup 2904-02-29 ppproto.c: fix bug that skipped prototyped check during notices check 30 ppproto.c: recognize `Copyright nn' 3104-02-14 ppproto.c: comment[0]==0 => no notice 3204-02-11 Makefile: fix %.yacc to handle cross-compile 3304-01-28 pp.h,pplib.h,ppop.c: add PP_RESET to restore original pp.symtab scope 3403-12-12 ppcall.c: missing macro actual warned but expanded 3503-11-12 ppexpr.c: fix premature #if expression token strip 3603-06-21 ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL 3703-06-10 ppargs.c: add -D-d and -D-m 38 ppargs.c: add gnu options { -dD -dM -imacros -include -lang-* -lint } 3903-05-19 pplex.c: fix stray SKIPMACRO bug 4003-05-18 ppcall.c: add SYM_FUNCTION '(' peek to avoid inappropriate ungetchr() 4103-04-30 pp:mapinclude hosted <std.h>="." will search only hosted dirs 42 pp.probe: add pp:mapinclude probe for namespace incursions 4303-04-29 ignore()=>ppmapinclude(), add pp:mapinclude 4403-03-25 ppop.c: PP_RESERVED now deletes old symbol before redef with lex value 4503-03-14 pp.probe: fix the #include_next probe 4603-02-28 ppsearch.c: fix -MM bug that missed prefix include hosted mark 4703-02-18 pplex.c: handle COMPATIBILITY \" and \' in macro actuals 4803-01-23 probe.win32: mingw32 tweaks 4902-12-17 ppargs.c: document -I-! 5002-12-06 -I- pp:noprefix otherwise pp:prefix default 5102-11-29 probe.win32: added __INTSIZE, drop dm pp:noallmultiple 5202-11-26 pp.def: add STDC_HOSTED 53 probe.win32: add C95 and C99 STDC predefined macros 5402-10-30 ppfsm.h: add boundary check to IDSTATE() 5502-10-18 probe.win32: update for mingw 5602-10-15 ppsearch.c: if PLUSPLUS && not found && no suffix then try with .h 5702-10-10 pplex.c: fix does not end with `newline' bugs 5802-10-01 ppop.c,ppargs.c: -I-I => -I-M with proper docs; -I-I for PP_IGNORE 5902-09-21 pp.probe: add pp:nocatliteral test 6002-09-10 pp.tab: add pp:passthrough to match -D-P docs 6102-08-30 probe.win32: fix for borland cc -E 6202-08-22 ppexpr.c: add __SOURCE__ and #match(string,pattern) 6302-06-25 ppproto.c: fix pragma search bug that stopped after 8 comment lines 6402-06-11 ppsearch.c: fix ... next include search to skip *all* intermediates 6502-05-28 probe.win32: updates for { mingw } 66 ppsearch.c: don't use inherited prefix for <...> -- duh 6702-05-24 ppcontrol.c: simplify getline() space canonicalization 68 probe.win32: updates for { digital-mars borland lcc } 6902-05-20 ppcontrol.c: update to use regsubcomp(),regsubexec() 7002-05-09 ppcontrol.c: inhibit `EOF in directive': newline warning will catch it 71 pplex.c: inhibit `newline in character constant' for hosted directives 7202-05-06 probe.win32: add more win32 compilers 7302-04-15 probe.win32: handle long long unsigned int 7402-04-12 ppproto.c: fix NOTICED check 7502-03-15 ppproto.c: fix cpp pp:compatibility double line sync memory fault 7602-03-11 pplex.c: add pp:modern to emit \a \v instead of octal forms 7702-02-14 ppargs.c: fix -D or -U as last arg core dump 7802-01-24 pplib.h: use vmalloc(Vmregion) if _std_malloc 7902-01-23 probe.win32: add more msvc predefined macro candidates 8002-01-14 ppproto.c: #pragma prototyped noticed -- has notice comment 8102-01-10 ppproto.c: fix PROTO_FORCE|PROTO_PASS bug that disabled PROTO_FORCE 8202-01-08 pplex.c: fix HEADEREXPAND|HEADEREXPANDALL logic 8301-11-22 pplex.c: add pp:headerexpandall for gcc vs. msvc <...> expand diff 84 pp.probe: add pp:headerexpandall test 8501-10-20 pplex.c: fix pp:splicespace inside "..." 8601-09-11 ppinput.c: use pathnative() for native fs representation 8701-08-31 pp.probe: handle -Dmacro(args)=value 8801-08-11 ppcontrol: fix ... and __VAR_ARGS__ for C99 89 ppsearch: fix SEARCH_NEXT bug that skipped the include stack 9001-08-06 ppproto: preserve #! first line for # comments 9101-07-17 gentab.sh: fix ksh test to omit pdksh (typeset -u fails) 9201-06-26 ppproto.c: fix another buffer boundary bug that didn't preserve OTHER 9301-06-06 ppsearch.c: list PP_FILEDEPS headers once 9401-06-01 pp.h,ppop.c,ppsearch.c: allow multiple PP_FILEDEPS (-M) 9501-05-24 pp.probe: fix pp:hostedtransition probe: only suncc can __STDC__==1? 9601-04-25 pp.probe: split macro probe files for compilers that have #line limits 9701-04-19 pp.h,pplex.c,ppproto.c: fix { \a \E \v } EBCDIC translations 9801-04-16 pp.tab: add pp:splicespace for mvs jcl decks -- the 60's live on 9901-04-13 ppbuiltin: add __FUNCTION__ cache for functions that span the buffer 10001-03-08 pp.tab,ppbuiltin,ppcontrol,probe: add pp:hostedtransition 10101-02-22 pp.tab,ppfsm,pplex,pp.probe,probe.win32: add pp:zeof for ^Z => EOF 10201-02-14 ppcall.c: fix macro(tuple*) bug that truncated macro arg expand buffer 103 pplex.c: fix # inside pp:pragmaexpand 104 gentab.sh: change ksh test for openbsd /bin/sh 105 ppproto.c: fix buffer boundary bug that lost call nesting 106 ppproto.c: add realloc prototype and memcpy=>memcopy strcpy=>strcopy 10701-02-09 ppsearch.c: fix another pp.include null dereference 10801-02-07 ppcall.c: fix stack inequality checks 109 ppcall.c: handle trailing \ in macro args 11001-02-06 fix readonly buffer write (cpp test 07:2873) 11101-02-04 fix -M* to properly handle .cxx .cpp .C input 112 fix IN_BUFFER pop bug that did not reset the token pointer 11301-01-01 pp:headerexpand: space ok if not IN_MACRO 114 ppcall: hide if IN_FILE|IN_MACRO|IN_EXPAND 115 pplex: don't complain about ^L or ^Z as last char in file 116 ppsearch: fix #include <.../foo.h> loop 117 ppcontrol: manulally increment IN_RESCAN error_info.line 11800-12-25 add EXPOSE to expose hidden macros (for #import ...) 119 probe.win32: add cc path *and* args to first line to avoid hash clash 120 pp.probe: filter out invalid symbols for predefined macro scan, duh 121 pp:headerexpand: limit expansion to IN_MACRO 12200-10-31 __STDC__==0 if HOSTED && _UWIN 12300-10-26 pplib.h: change SEEK_SET to O_RDONLY for aix 12400-10-17 pp.probe: __IMPORT__ => __STDPP__IMPORT__ 12500-09-18 add __FUNCTION__=#(FUNCTION), #define <a b> c 126 pp.probe: add probe_longlong 127 probe.win32: add #define <long long> 12800-09-11 add pp:noproto (NOPROTO pp.option) to disable ppproto() 12900-09-01 ppproto: fix buffer slide bug 13000-08-11 pplb.h: check for <unistd.h> already included for PROTOMAIN 131 pragma: add pp:pragmaexpand to expand pragma args 132 ppcontrol: always disable pp:* pragma expansion 133 ppcall: fix pp:hide buffer clash 13400-06-01 pplex: fix "\\U" and "\\u" 13500-05-22 ppsearch: fix uwin #include <C:/foo/bar.h> 13600-05-16 probe.win32: update reserved word list 13700-05-09 ppcontrol: fix C++ macro >+> invalid fuse 138 ppcontrol: 'macro' expansion only for COMPATIBILITY | TRANSITION 139 c9x: up to date with proposed standard 14000-04-01 pp.tab: add allpossible and ALLPOSSIBLE 141 ppmacref: fix ref inside literal catenation 14200-02-14 pppopen(): general comments with "bme" (begin middle end) string 14300-01-11 pp.probe: hosttype now in C.probe 14499-11-19 is[a-z]*( => ppis[a-z]*( 145 ppproto: "..." [A-Z_]+ "..." ignores [A-Z_]+ if PROTOMAIN 14699-11-11 ppproto: use astlicense() 14799-10-31 ppproto: add PROTO_SHARP, update license parse 148 pplex: fix some MARK bugs seen by #define X "A B <C@D>" 14999-10-01 add pp:stringsplit for "...\\n..." => "..."\n"..." 150 add pp:lineid to match PP_LINEID 15199-07-17 ppbuiltin: fix getline() canon spacing for numbers 152 ppsearch: fix FILEDEPS not found \\n print 153 pplex: fix spurious FILEDEPS '.' empty character constant message 154 ppargs: fix usage error call and error_info.id default value 155 ppproto: fix up copyright notice for ksh93 style .author file 156 ppproto: check if notice text if file path 15799-06-02 ppproto: add __MANGLE_package_DATA__ & __MANGLE_package_FUNC__ 15899-05-26 ppcontrol: all pragmas but prototyped need pp: 15999-05-25 ppargs: long options 16099-05-22 ppproto: changes for full ast vs. PROTO_STANDALONE 16199-05-09 ppinput: add #pragma pp:native and (pp.option&NATIVE) for native paths 16299-04-22 ppproto: finish type=open notice 16399-02-11 #define __STDC__ #(STDC); demote __STDC__ to 0 for HOSTED (thanks sun) 16499-02-04 pplex: joined strings separated by \\\n 16599-01-11 probe.win32: add _UWIN predef 16698-10-20 pplex: a few more (HOSTED|RELAX) checks 167 -D:preserve throws a bunch of stuff -- great for imake (yuk) 16898-05-11 pplex: fix "..." \n off by one line count 16998-02-14 ppcontrol: fix HEADEREXPAND missing NUL 17098-01-23 ppproto: add _GNUC_ to _WIN32 check 171 ppfsm: don't optimize for hp.pa 17297-11-11 ppcontrol: fix recursive use of pp.hdrbuf for HEADEREXPAND 17397-10-31 ppmacref,pp.h: add ppmacref sum arg -- some parts assumed it! 17497-10-01 pplex: loosen HEADEREXPAND check 17597-08-11 pplex: fix COMPILE pplex() bug that did not reset NEWLINE for S_MACRO 176 pplex: PP_PRESERVE does not pp.pragma <token> ... # <pragma-stuff> 177 pp.def: add UWIN 178 ppcall: fix macro actual arg error checks 17997-07-17 ppproto.c: C++ __INLINE__ prefixed with extern __MANGLE__ 180 ppop.c: fix PP_RESERVED T_* lookup 18197-05-09 pp.def: add MVS :architecture: 182 ppfsm.c: change C_* pseudo codes to not clash with ebcdic 183 pp.probe: fix stdc.$src sed script 18497-04-01 ppcontrol.c: fix tokop() for PP_RESERVED 18596-12-25 add ms #@ charize to complement # stringize 186 pp.probe now detects preincludes 187 ppproto: allow #ifdef'd function definions before { 188 ppproto: NoN() is not a function 189 pp.key,ppkey.h: add int64 190 ppargs.c: fix -M{DGM}* 19196-12-06 add pp:headerexpand for ms that expands macros in expanded <...> 19296-10-31 a few more line sync tweaks for EDG C++ 19396-10-11 fix pp:macref off by one for standalone pp (big suprise) 19496-10-01 -D:macref -D-L -> #line (n-2)\n#pragma pp:macref ... 19596-08-11 fix transition macro expansion 196 compatibility \" or \' does not start quote 19796-02-29 use <hashkey.h> 198 drop ungetchr() in ppcall that modified macro values 199 tighten the DEBUG PANIC case in ppcontrol.c 200 unify #architecture() and #machine() probe 201 add POSIX,WIN32,X86 to pp.sym 202 tweak pp.probe 20396-02-14 pp:noallmultiple works on hosted files too 204 fix #define /* EOF loop 20596-01-31 fix ## as arg to stringize macro to have ## value, not # 206 add nonstopux and SYSTYPE_SVR4 to pp.def 20796-01-01 AT&T Research now 208 fix catliteral line sync line number bug 209 ppproto() converts non-directive <num>u to (unsigned)<num> 210 switch to <regex.h> 21195-10-31 fix PP_COMPILE PP_TRANSITION bug that didn't allow space before # 212 fix PP_TRANSITION \newline in definition complaint 21395-10-11 fix ppproto() PROTO_PLUSPLUS bug 214 change ignored pp.incref PP_SYNC_POP to PP_SYNC_IGNORE 215 add PP_PEDANTIC to handle gnu oversights (can't beat em ...) 216 add memfatal() call 217 relax newline in quote semantics 218 proto inline -> __INLINE__ 219 fix __INLINE__ proto def for __GCC__>=2 22095-08-11 pp:preserve for easel (aka IFS) and imake 221 fix pp:reguard ## macro output 222 fix MARK PANIC with CATLITERAL 223 PP_INPUT *.(s|S|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout 224 ppargs() can't use isid() until after FSM_INIT 225 -D#... for assert, -D%... for directives 226 __STRICT_ANSI__ && __GNUC__ requires -pedantic for PP_STRICT 227 #include <.../x> for include_next 22895-05-09 fix tokop() bug that concatenated adjacent strings 229 don't concatenate directive string literals in proto 230 split pp.mode into pp.mode and pp.option 231 restrict pp.probe hostinfo output to the first token 232 fix EOB/EOF pplex() nonterminating loop 233 unused var cleanup 234 add pp:reguard to emit #define and #undef (for C++ templates) 235 add a few ppproto '\r's for NT 236 fix T_BUILTIN ppsymbol -> ppsymkey pun 237 fix pp:stringspan `#define x "' hang 23895-04-01 fix pp:hide for macros defined before the hide 239 fix pp:map getline space canonicalization 240 fix proto `<digits>[uU]' 241 proto does // comments by default (fixes bug introduced 07/17/94) 242 proto does "..." "..." string literal concatenation 243 spice up proto copyright comments for nonexclusive license 244 add hosttype assertion 245 fix proto `typedef type fun(args)' 246 proto copyright finishing touches 247 fix overzealous "empty character constant" message 24895-02-14 pp:nopredefined probe info defines are now pp:builtin 249 clean up pp:hosted conflicts 250 tighten up unknown directive warning 251 PP_INPUT *.(s|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout 252 change newof(0,char,n,0) to newof(0,char,0,n) if 0 init not needed 253 don't emit unkown directives inside #if 0 ... #endif 25495-01-19 *strict-* does not force STRICT 255 token##null-last-variadic-arg consumes token (to match gcc) 256 variadic actuals call be one less than arity (to match gcc) 257 fix PLUSPLUS digraph bug that lost comment state 258 tighten up PLUSPLUS //, /*, */ interaction warnings 259 macro formals in "..." for COMPATIBILITY|TRANSITION 260 macro formals in '...' for COMPATIBILITY|TRANSITION|!STRICT 261 STRINGSPAN allows '\n' in '... too 262 add PP_SYNC_* flags for pp.incref arg 3 263 add PP_SYNC_INSERT for invented file references 264 fix C++ fsm bug that popped out of comment in // /* */ ... 265 PP_INPUT *.(s|S|asm|ASM) implies pp:nocatliteral pp:spaceout 26695-01-01 avoid string literal concatenation in pp.probe #if #predicate() tests 267 fix pplib.h memcpy,strncmp PROTOMAIN prototypes (its a nop tho) 26894-11-11 fix readonly memory reference in refill 269 add C++ digraphs (digraph = --trigraph) 270 add C++ T_EXPLICIT -- did dos take over C++? 271 fix improper ppproto() C++ __PARAM__ expansion 27294-11-01 allow #include string header arg concatenation (yes, its not ansi) 273 #macdef macros are recursive 27494-10-01 fix C++ } loop in ppfsm/refill 275 T_NOISES consumes symbol and optional paren group 276 __builtin_* T_NOISES by default 277 fix "..." "...MARK..." join 278 fix STANDALONE */*comment*/ 27994-09-11 fix pp.probe cp+strip with chmod u+w 28094-08-11 add -I<vdb-archive> to handle pax -x ppar header archives 281 fix -D-Q header checkpoints 282 add `pp:chop prefix' to chop prefix/ from include prefix/*/* 283 add pp:keyargs for key=value macro formals/actuals (not for C!) 28494-06-01 fix ppcontrol/tokop() that botched pp:id, etc. 285 add pp:plussplice to handle cfront // \<newline> ignorance 286 inhibit trigraph conversion for pp:compatibility, duh 287 new C++ keywords enabled by pp:keyword 288 proto: int fun xxx((yyy)) is macro call, not decl 289 fix !ALLMULTIPLE pp:load to SKIP between duplicated line syncs 290 fix PP_DUMP for pp:noallmultiple, optimize pp:load format 291 fix CPP CACHEOUTX() buffer boundary bug 29294-04-01 drop warnings for -X* 293 fix ppproto() %% in comment bug for yacc proto 294 PP_COMMENT now truncates comments to MAXTOKEN-4 29594-03-01 no pp:truncate for #pragma pp:macref 29694-01-01 fix STANDALONE+PP_TRUNCATE fsm macro bug 297 drop __VOID__ from ppproto.c 29893-12-01 release 29993-11-11 fix PP_COMPILE+PP_TRUNCATE=8 bug for continue,unsigned,etc. 300 add PP_LINEBASE for compilers that botch long line sync paths 301 fix #if unsigned promotions 302 aggressive interactive line splice flush 303 fix #else inside multiline null dereference 304 fix "..." newline space # COMPATIBILITY CATLITERAL bug 305 fix m(a)b compatibility token pasting [cpp/test/ess.01.c] 306 fix nested @X mark bug [cpp/test/net.02.c] 30793-10-11 add FSM_COMPATIBILITY for floating point hex -- yo ansi, anybody home 308 add #else if|ifdef|ifndef for COMPATIBILITY but with warning 309 drop PP_HOSTED, add ppop(PP_CDIR|PP_HOSTED,"-",n), -D-I for pp:cdir 31093-10-01 add pp:opspace to tokenize <binop><space>= to <binop>= 31193-08-11 drop ancient BCD constant (`...`) detection -- wake up cfront 312 fix PP_TRUNCATE macro fsm bug that missed some expansions 313 fix stringize bug that choked if space preceded # 314 fix <function-like-macro> <identifier> bug that omitted space 31593-07-17 minor transition mode fix for string concatenation 316 fix standalone macdef line sync buffer bug 317 pp:noline turns off linesync, pp:line restores it 31893-06-22 add pp:prefix to control prefix include compatibility 31993-04-01 use probe_verbose in predefined symbol probe 32093-03-11 close fd after last file block read -- relaxes open fd limit 321 remove pp.control nesting limit 322 add `#rename old new' 323 __STDC__ not defined for plusplus (until they figure it out) 32493-01-22 fix ansi macro args recursion bug 32593-01-11 fix '\377'<0 for signed char compilers 326 add RELAX for __STDPP__directive directives 32792-12-25 fix #include guard test that omitted IN_tokens for CPP=1 32892-12-11 fix pp:truncate for STANDALONE and COMPILE 329 fix pp:allmultiple again! 33092-11-30 add pp:final, pp:initial 331 add __STDPP__directive and #(directive) as ??= alternative 332 relax obsolete macro expand warning for _xxx||xxx 333 retain quoted \newline when PP_LINEID != "" 334 fix CATLITERAL hidden newline line sync 33592-11-11 fix COMPATIBILITY EOF in macro arg list and # in macro body 336 fix [?\] on 4K buffer boundary bug that lost next refill() 337 fix ppproto bug that botched -ih comments 33892-10-31 fix standalone -C bug that duplicated output buffer 339 add pp:stringspan to handle gnu "<newline>" extension 34092-10-12 fix T_X_GROUP asm bug 341 allow `#define a "b' pp:compatibility hack 34292-08-11 add PP_PLUSCOMMENT, pp:pluscomment probe 343 add #(default v,d) #(empty v) #(iterate m,...) 344 compatibility allows #define f(a,,b) for 2 args! 345 probe now handles gcc -E -g3 to get gnu predefines 34692-07-17 fix pp:multiple again, fix ppproto() out of bounds 347 PP_STANDARD is always PP_CDIR and PP_HOSTED 34892-07-11 add #import and #include_next probes 34992-06-11 fix bug where comments dissappeared after disabled macro in standalone 350 COMPATIBILITY macro recursion bug fix may cause some to be missed 351 PP_MACREF or -D-L- ignores #line until #line with file arg 35292-06-01 add pp:ignore 353 fix probe of stdpp to handle -I[-+][CH] 35492-05-11 add pp:hide <id>, pp:note <id>, noticed(<id>), exists(<...>) 355 add defined(__STDPP__<pragma>) feature test 356 add PP_CDIR, pp:cdir for C++ extern "C" { ... } include wrapping 357 pp.probe now handles predefines with values other than 1 35892-04-11 add inverse proto (K&R -> prototype) to ppproto 35992-04-01 release 36092-02-29 #include <...> inside <xxx.h> gets next xxx.h on -I list 361 non-libpp generated symbols containing ' ' are not truncated 36292-02-11 conversion to new lexer brings time close to reiser (esp. w/gcc -O) 363 combine standalone (ppcpp) tokenizing (pplex) and proto lex tables 364 recode ppproto for standalone operation via PROTOMAIN 365 add PP_NOHASH for PP_COMPILE front ends that rehash T_ID anyway 366 delete PP_NOQUOTE 367 delete #option(strict) test in probe in favor of non-hosted warnings 368 add unsigned to ppexpr() 36991-10-11 add pp:truncate <len> for non-flexname compilers 37091-09-11 fix ppproto aggression on f(*y); -> f __PROTO__((*y)); 37191-08-11 switch seterror() to error_info.* 372 add pp:linefile to force file name in line sync 373 add pp:spaceout for probed compilers that don't allow pp override 37491-06-11 fix ignored -I/usr/include bug 37591-04-11 set SYM_INIT in pp.macref for -U on cmd line 37691-01-31 replace pp:pragma and pp:directive with pp:map 377 replace #assert and #unassert with #define #... and #undef #... 378 #assert and #unassert compatibility retained via pp:map 379 replace -D#directive with -D%directive (because of #assert change) 380 add pp:splicecat for \<newline> #define token paste 381 fix \<newline> bug that added space in COMPATIBILITY quoted strings 38290-12-11 fix #pragma pp:multiple 38390-11-11 generalize handling of non-standard keywords for COMPILE 384 replace pp:identifier/PP_IDENTIFIER with pp:reserved/PP_RESERVED 385 pp*keys* -> ppkey 386 add PP_NOISE 387 (gag) handle msdos paths by changing \ to / and retrying on failure 388 (gag) handle msdos :> operator by pplex() '+' return 389 add #pragma prototyped and ppproto.c for prototype conversion 390 add unsigned long arg to PP_MACREF for hashed macro arity+value 39190-10-11 0f is not a float constant 392 change -I-M to -I-I, file just lists include files to be ignored 393 fix ppprobe for __STDC__==0 hybrids 394 add pp.flags and PP_[a-z0-9]+ for exported state info 39590-10-01 fix standalone ppmacref for directives 396 add `try' to C++ keywords 397 fine tune a few COMPILE error messages 398 privatize pp.h 39990-08-11 use opt_again in cmdargs() option parsers 400 (gag) add pp:macref macro reference pragma to handle CC preprocessors 401 (gag) add pp:spaceout to handle ansi + asm hacks 40290-07-17 remove spaces from macdef line sync (blew sun cc) 40390-06-11 add internal ppsymkey to avoid ppsymbol.value pun for SYM_KEYWORD 40490-05-01 fix catliteral bug of `"..." << ' -> `"..." <=' 40590-04-01 fix `ifndef-define-endif' include wrapper test 40690-03-27 add setpreroot() to ppop() [ sleazy but well hidden ] 40790-03-22 pp.macref called for all undef's 40890-03-20 add <prefix>cpp checks to ppprobe 409 add pp:hostdir before pp:include in ppprobe 410 fix PP_HOSTDIR op with no dir arg 41190-03-15 System V CCS compatibility update 412 add PP_ASSERT 413 add -A for PP_ASSERT and -YI,dir for PP_STANDARD 414 add ppincref.c and -H to use it 415 -Xa defines __STDC__ to 0 (gak) 41690-03-09 duplicate macro formals cause level 2 error 41790-03-01 add #(ARGC) for (variadic) macro arg count 41890-02-11 fix line sync number bug in pppush() 41989-12-01 ignore leading = in pragma map for old pragma compatibility 420 check for NEWLINE on first macdef line sync 42189-11-11 add -1 arg to pp.incref -- include skipped 422 STRICT 0x7e-macro is T_INVALID per standard 42389-10-31 put all C keys in ppckeys.c, C++ keys in pppkeys.c 424 add pp:identifier pragma to selectively undo PP_COMPILE keywords 425 add tokop() to ppcontrol to support multi-valued pragmas 426 add #ifndef...#endif include optimization for STRICT 42789-10-27 use REF_NORMAL, REF_IF, REF_UNDEF for pp.macref arg2 42889-10-17 fix c(x)y compatibility pasting bug 429 #line 1 "f" now marks "f" included 43089-10-11 enable -I. during initialization 43189-10-01 inhibit pp:linetype syncs for top level #line directives 432 ----- see HISTORY ----- 433