1*10898Sroland.mainz@nrubsig.org09-02-02 pp.probe,probe.win32: check for compiler supplied __FUNCTION__ 2*10898Sroland.mainz@nrubsig.org09-02-02 ppop.c: include pp_default.h/probe at end of builtin script 3*10898Sroland.mainz@nrubsig.org09-01-20 probe.win32: elide #pragma comment.*linker.*manifest 4*10898Sroland.mainz@nrubsig.org09-01-06 ppcall.c: fix macro definition overwrite bug -- I know 5*10898Sroland.mainz@nrubsig.org09-01-05 ppcontrol.c: fix multiple include guard for #include outside guard 6*10898Sroland.mainz@nrubsig.org08-12-07 pp.h,ppdata.c: fix ancient pptype and ppctype[] off by one 7*10898Sroland.mainz@nrubsig.org08-11-15 ppsearch.c: '\\' => '/' in first step; msvc complains about '\\' in #line!! 8*10898Sroland.mainz@nrubsig.org08-10-31 ppsearch.c: relax pp:nomultiple pedantry 9*10898Sroland.mainz@nrubsig.org08-10-30 pplex.c: handle =#x S_CHRB|SPLICE bug 108462SApril.Chin@Sun.COM08-05-11 ppproto.c: fix proto test 10 regression 118462SApril.Chin@Sun.COM07-09-21 ppproto.c: add "Public Domain" to the noticed list 128462SApril.Chin@Sun.COM07-08-11 probe.win32: add cl.exe setuid workaround, CC.VERSION[.STRING] 138462SApril.Chin@Sun.COM07-06-12 pplex.c: finish -D:preserve logic update for imake 148462SApril.Chin@Sun.COM07-06-07 pplex.c: handle -D:preserve S_CHRB splices 158462SApril.Chin@Sun.COM07-06-04 ppsearch.c: only apply pp:chop ?old?new? if original not found 168462SApril.Chin@Sun.COM07-03-11 add -D-Y pp:pedantic, PP_WARN macro formal parenthesis checks 178462SApril.Chin@Sun.COM07-01-26 pp.def,probe.win32: add _WCHAR_T_DEFINED 184887Schin06-09-23 ppop.c: check -I <dev,ino> for c and TYPE_HOSTED|TYPE_VENDOR attrs 194887Schin06-09-23 pplex.c: add HOSTED check for "/* appears in // comment" -- doh 204887Schin06-09-05 pp.probe: add version stamp comment 214887Schin06-06-29 pp.probe: gcc pp:linefile probe (otherwise it can dump!) 224887Schin06-06-28 ppproto.c: fix inappropriate __PARAM__ insertion 234887Schin06-05-09 pp.tab,ppcontrol.c,ppproto.c: add externalize 244887Schin ppfsm.c: handle compatibility ul numeric qualifiers 254887Schin06-02-28 probe.win32: add wchar_t probe 264887Schin06-01-11 pplex.c: fix rpcgen pp:passthrough header splice bug 274887Schin05-12-16 pplex.c: fix imake pp:passthrough comment splice bug 284887Schin05-09-16 pplib.h: add <string.h> for standalone proto 294887Schin05-07-31 pplib.h: finally trust __STDC__ headers 304887Schin05-04-11 pplex.c: fix '"a" #s' catliteral + stringize bug 314887Schin05-03-29 pp.probe: check $? and stderr messages for pp:lineid 324887Schin05-02-20 probe.win32: handle /platformsdk mount 334887Schin05-01-11 ppargs.c: fix -I-S docs 344887Schin ppinput.c: ppproto() only for COMPATIBILITY or PLUSPLUS 354887Schin04-10-22 ppproto.c: handle `type var[x][y]' arg prototype 364887Schin04-10-01 pplex.c: really fix directive hidden newline logic 374887Schin04-08-31 pplex.c: fix directive hidden newline logic 384887Schin ppcall.c: fix '(' peek bug that missed the MARK 394887Schin04-08-30 add pragma pp:pragmaflags PP_PRAGMAFLAGS, pp:system_header 404887Schin04-08-11 ppproto.c: intercept "#(define|undef) extern" for __(EX|IM)PORT__ 414887Schin04-07-23 probe.win32: generalize #include dir order search 424887Schin04-07-22 ppsearch.c: access() => eaccess() 434887Schin04-05-20 ppproto.c: don't __PROTO__ `int fun __P((int));' 444887Schin04-04-15 probe.win32: sync up with uwin 2003-08-06 master -- oops 454887Schin04-04-01 pp.probe: add stdinclude usrinclude path cleanup 464887Schin04-02-29 ppproto.c: fix bug that skipped prototyped check during notices check 474887Schin ppproto.c: recognize `Copyright nn' 484887Schin04-02-14 ppproto.c: comment[0]==0 => no notice 494887Schin04-02-11 Makefile: fix %.yacc to handle cross-compile 504887Schin04-01-28 pp.h,pplib.h,ppop.c: add PP_RESET to restore original pp.symtab scope 514887Schin03-12-12 ppcall.c: missing macro actual warned but expanded 524887Schin03-11-12 ppexpr.c: fix premature #if expression token strip 534887Schin03-06-21 ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL 544887Schin03-06-10 ppargs.c: add -D-d and -D-m 554887Schin ppargs.c: add gnu options { -dD -dM -imacros -include -lang-* -lint } 564887Schin03-05-19 pplex.c: fix stray SKIPMACRO bug 574887Schin03-05-18 ppcall.c: add SYM_FUNCTION '(' peek to avoid inappropriate ungetchr() 584887Schin03-04-30 pp:mapinclude hosted <std.h>="." will search only hosted dirs 594887Schin pp.probe: add pp:mapinclude probe for namespace incursions 604887Schin03-04-29 ignore()=>ppmapinclude(), add pp:mapinclude 614887Schin03-03-25 ppop.c: PP_RESERVED now deletes old symbol before redef with lex value 624887Schin03-03-14 pp.probe: fix the #include_next probe 634887Schin03-02-28 ppsearch.c: fix -MM bug that missed prefix include hosted mark 644887Schin03-02-18 pplex.c: handle COMPATIBILITY \" and \' in macro actuals 654887Schin03-01-23 probe.win32: mingw32 tweaks 664887Schin02-12-17 ppargs.c: document -I-! 674887Schin02-12-06 -I- pp:noprefix otherwise pp:prefix default 684887Schin02-11-29 probe.win32: added __INTSIZE, drop dm pp:noallmultiple 694887Schin02-11-26 pp.def: add STDC_HOSTED 704887Schin probe.win32: add C95 and C99 STDC predefined macros 714887Schin02-10-30 ppfsm.h: add boundary check to IDSTATE() 724887Schin02-10-18 probe.win32: update for mingw 734887Schin02-10-15 ppsearch.c: if PLUSPLUS && not found && no suffix then try with .h 744887Schin02-10-10 pplex.c: fix does not end with `newline' bugs 754887Schin02-10-01 ppop.c,ppargs.c: -I-I => -I-M with proper docs; -I-I for PP_IGNORE 764887Schin02-09-21 pp.probe: add pp:nocatliteral test 774887Schin02-09-10 pp.tab: add pp:passthrough to match -D-P docs 784887Schin02-08-30 probe.win32: fix for borland cc -E 794887Schin02-08-22 ppexpr.c: add __SOURCE__ and #match(string,pattern) 804887Schin02-06-25 ppproto.c: fix pragma search bug that stopped after 8 comment lines 814887Schin02-06-11 ppsearch.c: fix ... next include search to skip *all* intermediates 824887Schin02-05-28 probe.win32: updates for { mingw } 834887Schin ppsearch.c: don't use inherited prefix for <...> -- duh 844887Schin02-05-24 ppcontrol.c: simplify getline() space canonicalization 854887Schin probe.win32: updates for { digital-mars borland lcc } 864887Schin02-05-20 ppcontrol.c: update to use regsubcomp(),regsubexec() 874887Schin02-05-09 ppcontrol.c: inhibit `EOF in directive': newline warning will catch it 884887Schin pplex.c: inhibit `newline in character constant' for hosted directives 894887Schin02-05-06 probe.win32: add more win32 compilers 904887Schin02-04-15 probe.win32: handle long long unsigned int 914887Schin02-04-12 ppproto.c: fix NOTICED check 924887Schin02-03-15 ppproto.c: fix cpp pp:compatibility double line sync memory fault 934887Schin02-03-11 pplex.c: add pp:modern to emit \a \v instead of octal forms 944887Schin02-02-14 ppargs.c: fix -D or -U as last arg core dump 954887Schin02-01-24 pplib.h: use vmalloc(Vmregion) if _std_malloc 964887Schin02-01-23 probe.win32: add more msvc predefined macro candidates 974887Schin02-01-14 ppproto.c: #pragma prototyped noticed -- has notice comment 984887Schin02-01-10 ppproto.c: fix PROTO_FORCE|PROTO_PASS bug that disabled PROTO_FORCE 994887Schin02-01-08 pplex.c: fix HEADEREXPAND|HEADEREXPANDALL logic 1004887Schin01-11-22 pplex.c: add pp:headerexpandall for gcc vs. msvc <...> expand diff 1014887Schin pp.probe: add pp:headerexpandall test 1024887Schin01-10-20 pplex.c: fix pp:splicespace inside "..." 1034887Schin01-09-11 ppinput.c: use pathnative() for native fs representation 1044887Schin01-08-31 pp.probe: handle -Dmacro(args)=value 1054887Schin01-08-11 ppcontrol: fix ... and __VAR_ARGS__ for C99 1064887Schin ppsearch: fix SEARCH_NEXT bug that skipped the include stack 1074887Schin01-08-06 ppproto: preserve #! first line for # comments 1084887Schin01-07-17 gentab.sh: fix ksh test to omit pdksh (typeset -u fails) 1094887Schin01-06-26 ppproto.c: fix another buffer boundary bug that didn't preserve OTHER 1104887Schin01-06-06 ppsearch.c: list PP_FILEDEPS headers once 1114887Schin01-06-01 pp.h,ppop.c,ppsearch.c: allow multiple PP_FILEDEPS (-M) 1124887Schin01-05-24 pp.probe: fix pp:hostedtransition probe: only suncc can __STDC__==1? 1134887Schin01-04-25 pp.probe: split macro probe files for compilers that have #line limits 1144887Schin01-04-19 pp.h,pplex.c,ppproto.c: fix { \a \E \v } EBCDIC translations 1154887Schin01-04-16 pp.tab: add pp:splicespace for mvs jcl decks -- the 60's live on 1164887Schin01-04-13 ppbuiltin: add __FUNCTION__ cache for functions that span the buffer 1174887Schin01-03-08 pp.tab,ppbuiltin,ppcontrol,probe: add pp:hostedtransition 1184887Schin01-02-22 pp.tab,ppfsm,pplex,pp.probe,probe.win32: add pp:zeof for ^Z => EOF 1194887Schin01-02-14 ppcall.c: fix macro(tuple*) bug that truncated macro arg expand buffer 1204887Schin pplex.c: fix # inside pp:pragmaexpand 1214887Schin gentab.sh: change ksh test for openbsd /bin/sh 1224887Schin ppproto.c: fix buffer boundary bug that lost call nesting 1234887Schin ppproto.c: add realloc prototype and memcpy=>memcopy strcpy=>strcopy 1244887Schin01-02-09 ppsearch.c: fix another pp.include null dereference 1254887Schin01-02-07 ppcall.c: fix stack inequality checks 1264887Schin ppcall.c: handle trailing \ in macro args 1274887Schin01-02-06 fix readonly buffer write (cpp test 07:2873) 1284887Schin01-02-04 fix -M* to properly handle .cxx .cpp .C input 1294887Schin fix IN_BUFFER pop bug that did not reset the token pointer 1304887Schin01-01-01 pp:headerexpand: space ok if not IN_MACRO 1314887Schin ppcall: hide if IN_FILE|IN_MACRO|IN_EXPAND 1324887Schin pplex: don't complain about ^L or ^Z as last char in file 1334887Schin ppsearch: fix #include <.../foo.h> loop 1344887Schin ppcontrol: manulally increment IN_RESCAN error_info.line 1354887Schin00-12-25 add EXPOSE to expose hidden macros (for #import ...) 1364887Schin probe.win32: add cc path *and* args to first line to avoid hash clash 1374887Schin pp.probe: filter out invalid symbols for predefined macro scan, duh 1384887Schin pp:headerexpand: limit expansion to IN_MACRO 1394887Schin00-10-31 __STDC__==0 if HOSTED && _UWIN 1404887Schin00-10-26 pplib.h: change SEEK_SET to O_RDONLY for aix 1414887Schin00-10-17 pp.probe: __IMPORT__ => __STDPP__IMPORT__ 1424887Schin00-09-18 add __FUNCTION__=#(FUNCTION), #define <a b> c 1434887Schin pp.probe: add probe_longlong 1444887Schin probe.win32: add #define <long long> 1454887Schin00-09-11 add pp:noproto (NOPROTO pp.option) to disable ppproto() 1464887Schin00-09-01 ppproto: fix buffer slide bug 1474887Schin00-08-11 pplb.h: check for <unistd.h> already included for PROTOMAIN 1484887Schin pragma: add pp:pragmaexpand to expand pragma args 1494887Schin ppcontrol: always disable pp:* pragma expansion 1504887Schin ppcall: fix pp:hide buffer clash 1514887Schin00-06-01 pplex: fix "\\U" and "\\u" 1524887Schin00-05-22 ppsearch: fix uwin #include <C:/foo/bar.h> 1534887Schin00-05-16 probe.win32: update reserved word list 1544887Schin00-05-09 ppcontrol: fix C++ macro >+> invalid fuse 1554887Schin ppcontrol: 'macro' expansion only for COMPATIBILITY | TRANSITION 1564887Schin c9x: up to date with proposed standard 1574887Schin00-04-01 pp.tab: add allpossible and ALLPOSSIBLE 1584887Schin ppmacref: fix ref inside literal catenation 1594887Schin00-02-14 pppopen(): general comments with "bme" (begin middle end) string 1604887Schin00-01-11 pp.probe: hosttype now in C.probe 1614887Schin99-11-19 is[a-z]*( => ppis[a-z]*( 1624887Schin ppproto: "..." [A-Z_]+ "..." ignores [A-Z_]+ if PROTOMAIN 1634887Schin99-11-11 ppproto: use astlicense() 1644887Schin99-10-31 ppproto: add PROTO_SHARP, update license parse 1654887Schin pplex: fix some MARK bugs seen by #define X "A B <C@D>" 1664887Schin99-10-01 add pp:stringsplit for "...\\n..." => "..."\n"..." 1674887Schin add pp:lineid to match PP_LINEID 1684887Schin99-07-17 ppbuiltin: fix getline() canon spacing for numbers 1694887Schin ppsearch: fix FILEDEPS not found \\n print 1704887Schin pplex: fix spurious FILEDEPS '.' empty character constant message 1714887Schin ppargs: fix usage error call and error_info.id default value 1724887Schin ppproto: fix up copyright notice for ksh93 style .author file 1734887Schin ppproto: check if notice text if file path 1744887Schin99-06-02 ppproto: add __MANGLE_package_DATA__ & __MANGLE_package_FUNC__ 1754887Schin99-05-26 ppcontrol: all pragmas but prototyped need pp: 1764887Schin99-05-25 ppargs: long options 1774887Schin99-05-22 ppproto: changes for full ast vs. PROTO_STANDALONE 1784887Schin99-05-09 ppinput: add #pragma pp:native and (pp.option&NATIVE) for native paths 1794887Schin99-04-22 ppproto: finish type=open notice 1804887Schin99-02-11 #define __STDC__ #(STDC); demote __STDC__ to 0 for HOSTED (thanks sun) 1814887Schin99-02-04 pplex: joined strings separated by \\\n 1824887Schin99-01-11 probe.win32: add _UWIN predef 1834887Schin98-10-20 pplex: a few more (HOSTED|RELAX) checks 1844887Schin -D:preserve throws a bunch of stuff -- great for imake (yuk) 1854887Schin98-05-11 pplex: fix "..." \n off by one line count 1864887Schin98-02-14 ppcontrol: fix HEADEREXPAND missing NUL 1874887Schin98-01-23 ppproto: add _GNUC_ to _WIN32 check 1884887Schin ppfsm: don't optimize for hp.pa 1894887Schin97-11-11 ppcontrol: fix recursive use of pp.hdrbuf for HEADEREXPAND 1904887Schin97-10-31 ppmacref,pp.h: add ppmacref sum arg -- some parts assumed it! 1914887Schin97-10-01 pplex: loosen HEADEREXPAND check 1924887Schin97-08-11 pplex: fix COMPILE pplex() bug that did not reset NEWLINE for S_MACRO 1934887Schin pplex: PP_PRESERVE does not pp.pragma <token> ... # <pragma-stuff> 1944887Schin pp.def: add UWIN 1954887Schin ppcall: fix macro actual arg error checks 1964887Schin97-07-17 ppproto.c: C++ __INLINE__ prefixed with extern __MANGLE__ 1974887Schin ppop.c: fix PP_RESERVED T_* lookup 1984887Schin97-05-09 pp.def: add MVS :architecture: 1994887Schin ppfsm.c: change C_* pseudo codes to not clash with ebcdic 2004887Schin pp.probe: fix stdc.$src sed script 2014887Schin97-04-01 ppcontrol.c: fix tokop() for PP_RESERVED 2024887Schin96-12-25 add ms #@ charize to complement # stringize 2034887Schin pp.probe now detects preincludes 2044887Schin ppproto: allow #ifdef'd function definions before { 2054887Schin ppproto: NoN() is not a function 2064887Schin pp.key,ppkey.h: add int64 2074887Schin ppargs.c: fix -M{DGM}* 2084887Schin96-12-06 add pp:headerexpand for ms that expands macros in expanded <...> 2094887Schin96-10-31 a few more line sync tweaks for EDG C++ 2104887Schin96-10-11 fix pp:macref off by one for standalone pp (big suprise) 2114887Schin96-10-01 -D:macref -D-L -> #line (n-2)\n#pragma pp:macref ... 2124887Schin96-08-11 fix transition macro expansion 2134887Schin compatibility \" or \' does not start quote 2144887Schin96-02-29 use <hashkey.h> 2154887Schin drop ungetchr() in ppcall that modified macro values 2164887Schin tighten the DEBUG PANIC case in ppcontrol.c 2174887Schin unify #architecture() and #machine() probe 2184887Schin add POSIX,WIN32,X86 to pp.sym 2194887Schin tweak pp.probe 2204887Schin96-02-14 pp:noallmultiple works on hosted files too 2214887Schin fix #define /* EOF loop 2224887Schin96-01-31 fix ## as arg to stringize macro to have ## value, not # 2234887Schin add nonstopux and SYSTYPE_SVR4 to pp.def 2244887Schin96-01-01 AT&T Research now 2254887Schin fix catliteral line sync line number bug 2264887Schin ppproto() converts non-directive <num>u to (unsigned)<num> 2274887Schin switch to <regex.h> 2284887Schin95-10-31 fix PP_COMPILE PP_TRANSITION bug that didn't allow space before # 2294887Schin fix PP_TRANSITION \newline in definition complaint 2304887Schin95-10-11 fix ppproto() PROTO_PLUSPLUS bug 2314887Schin change ignored pp.incref PP_SYNC_POP to PP_SYNC_IGNORE 2324887Schin add PP_PEDANTIC to handle gnu oversights (can't beat em ...) 2334887Schin add memfatal() call 2344887Schin relax newline in quote semantics 2354887Schin proto inline -> __INLINE__ 2364887Schin fix __INLINE__ proto def for __GCC__>=2 2374887Schin95-08-11 pp:preserve for easel (aka IFS) and imake 2384887Schin fix pp:reguard ## macro output 2394887Schin fix MARK PANIC with CATLITERAL 2404887Schin PP_INPUT *.(s|S|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout 2414887Schin ppargs() can't use isid() until after FSM_INIT 2424887Schin -D#... for assert, -D%... for directives 2434887Schin __STRICT_ANSI__ && __GNUC__ requires -pedantic for PP_STRICT 2444887Schin #include <.../x> for include_next 2454887Schin95-05-09 fix tokop() bug that concatenated adjacent strings 2464887Schin don't concatenate directive string literals in proto 2474887Schin split pp.mode into pp.mode and pp.option 2484887Schin restrict pp.probe hostinfo output to the first token 2494887Schin fix EOB/EOF pplex() nonterminating loop 2504887Schin unused var cleanup 2514887Schin add pp:reguard to emit #define and #undef (for C++ templates) 2524887Schin add a few ppproto '\r's for NT 2534887Schin fix T_BUILTIN ppsymbol -> ppsymkey pun 2544887Schin fix pp:stringspan `#define x "' hang 2554887Schin95-04-01 fix pp:hide for macros defined before the hide 2564887Schin fix pp:map getline space canonicalization 2574887Schin fix proto `<digits>[uU]' 2584887Schin proto does // comments by default (fixes bug introduced 07/17/94) 2594887Schin proto does "..." "..." string literal concatenation 2604887Schin spice up proto copyright comments for nonexclusive license 2614887Schin add hosttype assertion 2624887Schin fix proto `typedef type fun(args)' 2634887Schin proto copyright finishing touches 2644887Schin fix overzealous "empty character constant" message 2654887Schin95-02-14 pp:nopredefined probe info defines are now pp:builtin 2664887Schin clean up pp:hosted conflicts 2674887Schin tighten up unknown directive warning 2684887Schin PP_INPUT *.(s|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout 2694887Schin change newof(0,char,n,0) to newof(0,char,0,n) if 0 init not needed 2704887Schin don't emit unkown directives inside #if 0 ... #endif 2714887Schin95-01-19 *strict-* does not force STRICT 2724887Schin token##null-last-variadic-arg consumes token (to match gcc) 2734887Schin variadic actuals call be one less than arity (to match gcc) 2744887Schin fix PLUSPLUS digraph bug that lost comment state 2754887Schin tighten up PLUSPLUS //, /*, */ interaction warnings 2764887Schin macro formals in "..." for COMPATIBILITY|TRANSITION 2774887Schin macro formals in '...' for COMPATIBILITY|TRANSITION|!STRICT 2784887Schin STRINGSPAN allows '\n' in '... too 2794887Schin add PP_SYNC_* flags for pp.incref arg 3 2804887Schin add PP_SYNC_INSERT for invented file references 2814887Schin fix C++ fsm bug that popped out of comment in // /* */ ... 2824887Schin PP_INPUT *.(s|S|asm|ASM) implies pp:nocatliteral pp:spaceout 2834887Schin95-01-01 avoid string literal concatenation in pp.probe #if #predicate() tests 2844887Schin fix pplib.h memcpy,strncmp PROTOMAIN prototypes (its a nop tho) 2854887Schin94-11-11 fix readonly memory reference in refill 2864887Schin add C++ digraphs (digraph = --trigraph) 2874887Schin add C++ T_EXPLICIT -- did dos take over C++? 2884887Schin fix improper ppproto() C++ __PARAM__ expansion 2894887Schin94-11-01 allow #include string header arg concatenation (yes, its not ansi) 2904887Schin #macdef macros are recursive 2914887Schin94-10-01 fix C++ } loop in ppfsm/refill 2924887Schin T_NOISES consumes symbol and optional paren group 2934887Schin __builtin_* T_NOISES by default 2944887Schin fix "..." "...MARK..." join 2954887Schin fix STANDALONE */*comment*/ 2964887Schin94-09-11 fix pp.probe cp+strip with chmod u+w 2974887Schin94-08-11 add -I<vdb-archive> to handle pax -x ppar header archives 2984887Schin fix -D-Q header checkpoints 2994887Schin add `pp:chop prefix' to chop prefix/ from include prefix/*/* 3004887Schin add pp:keyargs for key=value macro formals/actuals (not for C!) 3014887Schin94-06-01 fix ppcontrol/tokop() that botched pp:id, etc. 3024887Schin add pp:plussplice to handle cfront // \<newline> ignorance 3034887Schin inhibit trigraph conversion for pp:compatibility, duh 3044887Schin new C++ keywords enabled by pp:keyword 3054887Schin proto: int fun xxx((yyy)) is macro call, not decl 3064887Schin fix !ALLMULTIPLE pp:load to SKIP between duplicated line syncs 3074887Schin fix PP_DUMP for pp:noallmultiple, optimize pp:load format 3084887Schin fix CPP CACHEOUTX() buffer boundary bug 3094887Schin94-04-01 drop warnings for -X* 3104887Schin fix ppproto() %% in comment bug for yacc proto 3114887Schin PP_COMMENT now truncates comments to MAXTOKEN-4 3124887Schin94-03-01 no pp:truncate for #pragma pp:macref 3134887Schin94-01-01 fix STANDALONE+PP_TRUNCATE fsm macro bug 3144887Schin drop __VOID__ from ppproto.c 3154887Schin93-12-01 release 3164887Schin93-11-11 fix PP_COMPILE+PP_TRUNCATE=8 bug for continue,unsigned,etc. 3174887Schin add PP_LINEBASE for compilers that botch long line sync paths 3184887Schin fix #if unsigned promotions 3194887Schin aggressive interactive line splice flush 3204887Schin fix #else inside multiline null dereference 3214887Schin fix "..." newline space # COMPATIBILITY CATLITERAL bug 3224887Schin fix m(a)b compatibility token pasting [cpp/test/ess.01.c] 3234887Schin fix nested @X mark bug [cpp/test/net.02.c] 3244887Schin93-10-11 add FSM_COMPATIBILITY for floating point hex -- yo ansi, anybody home 3254887Schin add #else if|ifdef|ifndef for COMPATIBILITY but with warning 3264887Schin drop PP_HOSTED, add ppop(PP_CDIR|PP_HOSTED,"-",n), -D-I for pp:cdir 3274887Schin93-10-01 add pp:opspace to tokenize <binop><space>= to <binop>= 3284887Schin93-08-11 drop ancient BCD constant (`...`) detection -- wake up cfront 3294887Schin fix PP_TRUNCATE macro fsm bug that missed some expansions 3304887Schin fix stringize bug that choked if space preceded # 3314887Schin fix <function-like-macro> <identifier> bug that omitted space 3324887Schin93-07-17 minor transition mode fix for string concatenation 3334887Schin fix standalone macdef line sync buffer bug 3344887Schin pp:noline turns off linesync, pp:line restores it 3354887Schin93-06-22 add pp:prefix to control prefix include compatibility 3364887Schin93-04-01 use probe_verbose in predefined symbol probe 3374887Schin93-03-11 close fd after last file block read -- relaxes open fd limit 3384887Schin remove pp.control nesting limit 3394887Schin add `#rename old new' 3404887Schin __STDC__ not defined for plusplus (until they figure it out) 3414887Schin93-01-22 fix ansi macro args recursion bug 3424887Schin93-01-11 fix '\377'<0 for signed char compilers 3434887Schin add RELAX for __STDPP__directive directives 3444887Schin92-12-25 fix #include guard test that omitted IN_tokens for CPP=1 3454887Schin92-12-11 fix pp:truncate for STANDALONE and COMPILE 3464887Schin fix pp:allmultiple again! 3474887Schin92-11-30 add pp:final, pp:initial 3484887Schin add __STDPP__directive and #(directive) as ??= alternative 3494887Schin relax obsolete macro expand warning for _xxx||xxx 3504887Schin retain quoted \newline when PP_LINEID != "" 3514887Schin fix CATLITERAL hidden newline line sync 3524887Schin92-11-11 fix COMPATIBILITY EOF in macro arg list and # in macro body 3534887Schin fix [?\] on 4K buffer boundary bug that lost next refill() 3544887Schin fix ppproto bug that botched -ih comments 3554887Schin92-10-31 fix standalone -C bug that duplicated output buffer 3564887Schin add pp:stringspan to handle gnu "<newline>" extension 3574887Schin92-10-12 fix T_X_GROUP asm bug 3584887Schin allow `#define a "b' pp:compatibility hack 3594887Schin92-08-11 add PP_PLUSCOMMENT, pp:pluscomment probe 3604887Schin add #(default v,d) #(empty v) #(iterate m,...) 3614887Schin compatibility allows #define f(a,,b) for 2 args! 3624887Schin probe now handles gcc -E -g3 to get gnu predefines 3634887Schin92-07-17 fix pp:multiple again, fix ppproto() out of bounds 3644887Schin PP_STANDARD is always PP_CDIR and PP_HOSTED 3654887Schin92-07-11 add #import and #include_next probes 3664887Schin92-06-11 fix bug where comments dissappeared after disabled macro in standalone 3674887Schin COMPATIBILITY macro recursion bug fix may cause some to be missed 3684887Schin PP_MACREF or -D-L- ignores #line until #line with file arg 3694887Schin92-06-01 add pp:ignore 3704887Schin fix probe of stdpp to handle -I[-+][CH] 3714887Schin92-05-11 add pp:hide <id>, pp:note <id>, noticed(<id>), exists(<...>) 3724887Schin add defined(__STDPP__<pragma>) feature test 3734887Schin add PP_CDIR, pp:cdir for C++ extern "C" { ... } include wrapping 3744887Schin pp.probe now handles predefines with values other than 1 3754887Schin92-04-11 add inverse proto (K&R -> prototype) to ppproto 3764887Schin92-04-01 release 3774887Schin92-02-29 #include <...> inside <xxx.h> gets next xxx.h on -I list 3784887Schin non-libpp generated symbols containing ' ' are not truncated 3794887Schin92-02-11 conversion to new lexer brings time close to reiser (esp. w/gcc -O) 3804887Schin combine standalone (ppcpp) tokenizing (pplex) and proto lex tables 3814887Schin recode ppproto for standalone operation via PROTOMAIN 3824887Schin add PP_NOHASH for PP_COMPILE front ends that rehash T_ID anyway 3834887Schin delete PP_NOQUOTE 3844887Schin delete #option(strict) test in probe in favor of non-hosted warnings 3854887Schin add unsigned to ppexpr() 3864887Schin91-10-11 add pp:truncate <len> for non-flexname compilers 3874887Schin91-09-11 fix ppproto aggression on f(*y); -> f __PROTO__((*y)); 3884887Schin91-08-11 switch seterror() to error_info.* 3894887Schin add pp:linefile to force file name in line sync 3904887Schin add pp:spaceout for probed compilers that don't allow pp override 3914887Schin91-06-11 fix ignored -I/usr/include bug 3924887Schin91-04-11 set SYM_INIT in pp.macref for -U on cmd line 3934887Schin91-01-31 replace pp:pragma and pp:directive with pp:map 3944887Schin replace #assert and #unassert with #define #... and #undef #... 3954887Schin #assert and #unassert compatibility retained via pp:map 3964887Schin replace -D#directive with -D%directive (because of #assert change) 3974887Schin add pp:splicecat for \<newline> #define token paste 3984887Schin fix \<newline> bug that added space in COMPATIBILITY quoted strings 3994887Schin90-12-11 fix #pragma pp:multiple 4004887Schin90-11-11 generalize handling of non-standard keywords for COMPILE 4014887Schin replace pp:identifier/PP_IDENTIFIER with pp:reserved/PP_RESERVED 4024887Schin pp*keys* -> ppkey 4034887Schin add PP_NOISE 4044887Schin (gag) handle msdos paths by changing \ to / and retrying on failure 4054887Schin (gag) handle msdos :> operator by pplex() '+' return 4064887Schin add #pragma prototyped and ppproto.c for prototype conversion 4074887Schin add unsigned long arg to PP_MACREF for hashed macro arity+value 4084887Schin90-10-11 0f is not a float constant 4094887Schin change -I-M to -I-I, file just lists include files to be ignored 4104887Schin fix ppprobe for __STDC__==0 hybrids 4114887Schin add pp.flags and PP_[a-z0-9]+ for exported state info 4124887Schin90-10-01 fix standalone ppmacref for directives 4134887Schin add `try' to C++ keywords 4144887Schin fine tune a few COMPILE error messages 4154887Schin privatize pp.h 4164887Schin90-08-11 use opt_again in cmdargs() option parsers 4174887Schin (gag) add pp:macref macro reference pragma to handle CC preprocessors 4184887Schin (gag) add pp:spaceout to handle ansi + asm hacks 4194887Schin90-07-17 remove spaces from macdef line sync (blew sun cc) 4204887Schin90-06-11 add internal ppsymkey to avoid ppsymbol.value pun for SYM_KEYWORD 4214887Schin90-05-01 fix catliteral bug of `"..." << ' -> `"..." <=' 4224887Schin90-04-01 fix `ifndef-define-endif' include wrapper test 4234887Schin90-03-27 add setpreroot() to ppop() [ sleazy but well hidden ] 4244887Schin90-03-22 pp.macref called for all undef's 4254887Schin90-03-20 add <prefix>cpp checks to ppprobe 4264887Schin add pp:hostdir before pp:include in ppprobe 4274887Schin fix PP_HOSTDIR op with no dir arg 4284887Schin90-03-15 System V CCS compatibility update 4294887Schin add PP_ASSERT 4304887Schin add -A for PP_ASSERT and -YI,dir for PP_STANDARD 4314887Schin add ppincref.c and -H to use it 4324887Schin -Xa defines __STDC__ to 0 (gak) 4334887Schin90-03-09 duplicate macro formals cause level 2 error 4344887Schin90-03-01 add #(ARGC) for (variadic) macro arg count 4354887Schin90-02-11 fix line sync number bug in pppush() 4364887Schin89-12-01 ignore leading = in pragma map for old pragma compatibility 4374887Schin check for NEWLINE on first macdef line sync 4384887Schin89-11-11 add -1 arg to pp.incref -- include skipped 4394887Schin STRICT 0x7e-macro is T_INVALID per standard 4404887Schin89-10-31 put all C keys in ppckeys.c, C++ keys in pppkeys.c 4414887Schin add pp:identifier pragma to selectively undo PP_COMPILE keywords 4424887Schin add tokop() to ppcontrol to support multi-valued pragmas 4434887Schin add #ifndef...#endif include optimization for STRICT 4444887Schin89-10-27 use REF_NORMAL, REF_IF, REF_UNDEF for pp.macref arg2 4454887Schin89-10-17 fix c(x)y compatibility pasting bug 4464887Schin #line 1 "f" now marks "f" included 4474887Schin89-10-11 enable -I. during initialization 4484887Schin89-10-01 inhibit pp:linetype syncs for top level #line directives 4494887Schin ----- see HISTORY ----- 450