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