xref: /onnv-gate/usr/src/lib/libpp/common/RELEASE (revision 10898:1883b621b3ea)
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