xref: /titanic_41/usr/src/lib/libpp/common/RELEASE (revision 5bbb4db2c3f208d12bf0fd11769728f9e5ba66a2)
108-05-11 ppproto.c: fix proto test 10 regression
207-09-21 ppproto.c: add "Public Domain" to the noticed list
307-08-11 probe.win32: add cl.exe setuid workaround, CC.VERSION[.STRING]
407-06-12 pplex.c: finish -D:preserve logic update for imake
507-06-07 pplex.c: handle -D:preserve S_CHRB splices
607-06-04 ppsearch.c: only apply pp:chop ?old?new? if original not found
707-03-11 add -D-Y pp:pedantic, PP_WARN macro formal parenthesis checks
807-01-26 pp.def,probe.win32: add _WCHAR_T_DEFINED
906-09-23 ppop.c: check -I <dev,ino> for c and TYPE_HOSTED|TYPE_VENDOR attrs
1006-09-23 pplex.c: add HOSTED check for "/* appears in // comment" -- doh
1106-09-05 pp.probe: add version stamp comment
1206-06-29 pp.probe: gcc pp:linefile probe (otherwise it can dump!)
1306-06-28 ppproto.c: fix inappropriate __PARAM__ insertion
1406-05-09 pp.tab,ppcontrol.c,ppproto.c: add externalize
15	 ppfsm.c: handle compatibility ul numeric qualifiers
1606-02-28 probe.win32: add wchar_t probe
1706-01-11 pplex.c: fix rpcgen pp:passthrough header splice bug
1805-12-16 pplex.c: fix imake pp:passthrough comment splice bug
1905-09-16 pplib.h: add <string.h> for standalone proto
2005-07-31 pplib.h: finally trust __STDC__ headers
2105-04-11 pplex.c: fix '"a" #s' catliteral + stringize bug
2205-03-29 pp.probe: check $? and stderr messages for pp:lineid
2305-02-20 probe.win32: handle /platformsdk mount
2405-01-11 ppargs.c: fix -I-S docs
25	 ppinput.c: ppproto() only for COMPATIBILITY or PLUSPLUS
2604-10-22 ppproto.c: handle `type var[x][y]' arg prototype
2704-10-01 pplex.c: really fix directive hidden newline logic
2804-08-31 pplex.c: fix directive hidden newline logic
29	 ppcall.c: fix '(' peek bug that missed the MARK
3004-08-30 add pragma pp:pragmaflags PP_PRAGMAFLAGS, pp:system_header
3104-08-11 ppproto.c: intercept "#(define|undef) extern" for __(EX|IM)PORT__
3204-07-23 probe.win32: generalize #include dir order search
3304-07-22 ppsearch.c: access() => eaccess()
3404-05-20 ppproto.c: don't __PROTO__ `int fun __P((int));'
3504-04-15 probe.win32: sync up with uwin 2003-08-06 master -- oops
3604-04-01 pp.probe: add stdinclude usrinclude path cleanup
3704-02-29 ppproto.c: fix bug that skipped prototyped check during notices check
38	 ppproto.c: recognize `Copyright nn'
3904-02-14 ppproto.c: comment[0]==0 => no notice
4004-02-11 Makefile: fix %.yacc to handle cross-compile
4104-01-28 pp.h,pplib.h,ppop.c: add PP_RESET to restore original pp.symtab scope
4203-12-12 ppcall.c: missing macro actual warned but expanded
4303-11-12 ppexpr.c: fix premature #if expression token strip
4403-06-21 ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL
4503-06-10 ppargs.c: add -D-d and -D-m
46	 ppargs.c: add gnu options { -dD -dM -imacros -include -lang-* -lint }
4703-05-19 pplex.c: fix stray SKIPMACRO bug
4803-05-18 ppcall.c: add SYM_FUNCTION '(' peek to avoid inappropriate ungetchr()
4903-04-30 pp:mapinclude hosted <std.h>="." will search only hosted dirs
50	 pp.probe: add pp:mapinclude probe for namespace incursions
5103-04-29 ignore()=>ppmapinclude(), add pp:mapinclude
5203-03-25 ppop.c: PP_RESERVED now deletes old symbol before redef with lex value
5303-03-14 pp.probe: fix the #include_next probe
5403-02-28 ppsearch.c: fix -MM bug that missed prefix include hosted mark
5503-02-18 pplex.c: handle COMPATIBILITY \" and \' in macro actuals
5603-01-23 probe.win32: mingw32 tweaks
5702-12-17 ppargs.c: document -I-!
5802-12-06 -I- pp:noprefix otherwise pp:prefix default
5902-11-29 probe.win32: added __INTSIZE, drop dm pp:noallmultiple
6002-11-26 pp.def: add STDC_HOSTED
61	 probe.win32: add C95 and C99 STDC predefined macros
6202-10-30 ppfsm.h: add boundary check to IDSTATE()
6302-10-18 probe.win32: update for mingw
6402-10-15 ppsearch.c: if PLUSPLUS && not found && no suffix then try with .h
6502-10-10 pplex.c: fix does not end with `newline' bugs
6602-10-01 ppop.c,ppargs.c: -I-I => -I-M with proper docs; -I-I for PP_IGNORE
6702-09-21 pp.probe: add pp:nocatliteral test
6802-09-10 pp.tab: add pp:passthrough to match -D-P docs
6902-08-30 probe.win32: fix for borland cc -E
7002-08-22 ppexpr.c: add __SOURCE__ and #match(string,pattern)
7102-06-25 ppproto.c: fix pragma search bug that stopped after 8 comment lines
7202-06-11 ppsearch.c: fix ... next include search to skip *all* intermediates
7302-05-28 probe.win32: updates for { mingw }
74	 ppsearch.c: don't use inherited prefix for <...> -- duh
7502-05-24 ppcontrol.c: simplify getline() space canonicalization
76	 probe.win32: updates for { digital-mars borland lcc }
7702-05-20 ppcontrol.c: update to use regsubcomp(),regsubexec()
7802-05-09 ppcontrol.c: inhibit `EOF in directive': newline warning will catch it
79	 pplex.c: inhibit `newline in character constant' for hosted directives
8002-05-06 probe.win32: add more win32 compilers
8102-04-15 probe.win32: handle long long unsigned int
8202-04-12 ppproto.c: fix NOTICED check
8302-03-15 ppproto.c: fix cpp pp:compatibility double line sync memory fault
8402-03-11 pplex.c: add pp:modern to emit \a \v instead of octal forms
8502-02-14 ppargs.c: fix -D or -U as last arg core dump
8602-01-24 pplib.h: use vmalloc(Vmregion) if _std_malloc
8702-01-23 probe.win32: add more msvc predefined macro candidates
8802-01-14 ppproto.c: #pragma prototyped noticed -- has notice comment
8902-01-10 ppproto.c: fix PROTO_FORCE|PROTO_PASS bug that disabled PROTO_FORCE
9002-01-08 pplex.c: fix HEADEREXPAND|HEADEREXPANDALL logic
9101-11-22 pplex.c: add pp:headerexpandall for gcc vs. msvc <...> expand diff
92	 pp.probe: add pp:headerexpandall test
9301-10-20 pplex.c: fix pp:splicespace inside "..."
9401-09-11 ppinput.c: use pathnative() for native fs representation
9501-08-31 pp.probe: handle -Dmacro(args)=value
9601-08-11 ppcontrol: fix ... and __VAR_ARGS__ for C99
97	 ppsearch: fix SEARCH_NEXT bug that skipped the include stack
9801-08-06 ppproto: preserve #! first line for # comments
9901-07-17 gentab.sh: fix ksh test to omit pdksh (typeset -u fails)
10001-06-26 ppproto.c: fix another buffer boundary bug that didn't preserve OTHER
10101-06-06 ppsearch.c: list PP_FILEDEPS headers once
10201-06-01 pp.h,ppop.c,ppsearch.c: allow multiple PP_FILEDEPS (-M)
10301-05-24 pp.probe: fix pp:hostedtransition probe: only suncc can __STDC__==1?
10401-04-25 pp.probe: split macro probe files for compilers that have #line limits
10501-04-19 pp.h,pplex.c,ppproto.c: fix { \a \E \v } EBCDIC translations
10601-04-16 pp.tab: add pp:splicespace for mvs jcl decks -- the 60's live on
10701-04-13 ppbuiltin: add __FUNCTION__ cache for functions that span the buffer
10801-03-08 pp.tab,ppbuiltin,ppcontrol,probe: add pp:hostedtransition
10901-02-22 pp.tab,ppfsm,pplex,pp.probe,probe.win32: add pp:zeof for ^Z => EOF
11001-02-14 ppcall.c: fix macro(tuple*) bug that truncated macro arg expand buffer
111	 pplex.c: fix # inside pp:pragmaexpand
112	 gentab.sh: change ksh test for openbsd /bin/sh
113	 ppproto.c: fix buffer boundary bug that lost call nesting
114	 ppproto.c: add realloc prototype and memcpy=>memcopy strcpy=>strcopy
11501-02-09 ppsearch.c: fix another pp.include null dereference
11601-02-07 ppcall.c: fix stack inequality checks
117	 ppcall.c: handle trailing \ in macro args
11801-02-06 fix readonly buffer write (cpp test 07:2873)
11901-02-04 fix -M* to properly handle .cxx .cpp .C input
120	 fix IN_BUFFER pop bug that did not reset the token pointer
12101-01-01 pp:headerexpand: space ok if not IN_MACRO
122	 ppcall: hide if IN_FILE|IN_MACRO|IN_EXPAND
123	 pplex: don't complain about ^L or ^Z as last char in file
124	 ppsearch: fix #include <.../foo.h> loop
125	 ppcontrol: manulally increment IN_RESCAN error_info.line
12600-12-25 add EXPOSE to expose hidden macros (for #import ...)
127	 probe.win32: add cc path *and* args to first line to avoid hash clash
128	 pp.probe: filter out invalid symbols for predefined macro scan, duh
129	 pp:headerexpand: limit expansion to IN_MACRO
13000-10-31 __STDC__==0 if HOSTED && _UWIN
13100-10-26 pplib.h: change SEEK_SET to O_RDONLY for aix
13200-10-17 pp.probe: __IMPORT__ => __STDPP__IMPORT__
13300-09-18 add __FUNCTION__=#(FUNCTION), #define <a b> c
134	 pp.probe: add probe_longlong
135	 probe.win32: add #define <long long>
13600-09-11 add pp:noproto (NOPROTO pp.option) to disable ppproto()
13700-09-01 ppproto: fix buffer slide bug
13800-08-11 pplb.h: check for <unistd.h> already included for PROTOMAIN
139	 pragma: add pp:pragmaexpand to expand pragma args
140	 ppcontrol: always disable pp:* pragma expansion
141	 ppcall: fix pp:hide buffer clash
14200-06-01 pplex: fix "\\U" and "\\u"
14300-05-22 ppsearch: fix uwin #include <C:/foo/bar.h>
14400-05-16 probe.win32: update reserved word list
14500-05-09 ppcontrol: fix C++ macro >+> invalid fuse
146	 ppcontrol: 'macro' expansion only for COMPATIBILITY | TRANSITION
147	 c9x: up to date with proposed standard
14800-04-01 pp.tab: add allpossible and ALLPOSSIBLE
149	 ppmacref: fix ref inside literal catenation
15000-02-14 pppopen(): general comments with "bme" (begin middle end) string
15100-01-11 pp.probe: hosttype now in C.probe
15299-11-19 is[a-z]*( => ppis[a-z]*(
153	 ppproto: "..." [A-Z_]+ "..." ignores [A-Z_]+ if PROTOMAIN
15499-11-11 ppproto: use astlicense()
15599-10-31 ppproto: add PROTO_SHARP, update license parse
156	 pplex: fix some MARK bugs seen by #define X "A B <C@D>"
15799-10-01 add pp:stringsplit for "...\\n..." => "..."\n"..."
158	 add pp:lineid to match PP_LINEID
15999-07-17 ppbuiltin: fix getline() canon spacing for numbers
160	 ppsearch: fix FILEDEPS not found \\n print
161	 pplex: fix spurious FILEDEPS '.' empty character constant message
162	 ppargs: fix usage error call and error_info.id default value
163	 ppproto: fix up copyright notice for ksh93 style .author file
164	 ppproto: check if notice text if file path
16599-06-02 ppproto: add __MANGLE_package_DATA__ & __MANGLE_package_FUNC__
16699-05-26 ppcontrol: all pragmas but prototyped need pp:
16799-05-25 ppargs: long options
16899-05-22 ppproto: changes for full ast vs. PROTO_STANDALONE
16999-05-09 ppinput: add #pragma pp:native and (pp.option&NATIVE) for native paths
17099-04-22 ppproto: finish type=open notice
17199-02-11 #define __STDC__ #(STDC); demote __STDC__ to 0 for HOSTED (thanks sun)
17299-02-04 pplex: joined strings separated by \\\n
17399-01-11 probe.win32: add _UWIN predef
17498-10-20 pplex: a few more (HOSTED|RELAX) checks
175	 -D:preserve throws a bunch of stuff -- great for imake (yuk)
17698-05-11 pplex: fix "..." \n off by one line count
17798-02-14 ppcontrol: fix HEADEREXPAND missing NUL
17898-01-23 ppproto: add _GNUC_ to _WIN32 check
179	 ppfsm: don't optimize for hp.pa
18097-11-11 ppcontrol: fix recursive use of pp.hdrbuf for HEADEREXPAND
18197-10-31 ppmacref,pp.h: add ppmacref sum arg -- some parts assumed it!
18297-10-01 pplex: loosen HEADEREXPAND check
18397-08-11 pplex: fix COMPILE pplex() bug that did not reset NEWLINE for S_MACRO
184	 pplex: PP_PRESERVE does not pp.pragma <token> ... # <pragma-stuff>
185	 pp.def: add UWIN
186	 ppcall: fix macro actual arg error checks
18797-07-17 ppproto.c: C++ __INLINE__ prefixed with extern __MANGLE__
188	 ppop.c: fix PP_RESERVED T_* lookup
18997-05-09 pp.def: add MVS :architecture:
190	 ppfsm.c: change C_* pseudo codes to not clash with ebcdic
191	 pp.probe: fix stdc.$src sed script
19297-04-01 ppcontrol.c: fix tokop() for PP_RESERVED
19396-12-25 add ms #@ charize to complement # stringize
194	 pp.probe now detects preincludes
195	 ppproto: allow #ifdef'd function definions before {
196	 ppproto: NoN() is not a function
197	 pp.key,ppkey.h: add int64
198	 ppargs.c: fix -M{DGM}*
19996-12-06 add pp:headerexpand for ms that expands macros in expanded <...>
20096-10-31 a few more line sync tweaks for EDG C++
20196-10-11 fix pp:macref off by one for standalone pp (big suprise)
20296-10-01 -D:macref -D-L -> #line (n-2)\n#pragma pp:macref ...
20396-08-11 fix transition macro expansion
204	 compatibility \" or \' does not start quote
20596-02-29 use <hashkey.h>
206	 drop ungetchr() in ppcall that modified macro values
207	 tighten the DEBUG PANIC case in ppcontrol.c
208	 unify #architecture() and #machine() probe
209	 add POSIX,WIN32,X86 to pp.sym
210	 tweak pp.probe
21196-02-14 pp:noallmultiple works on hosted files too
212	 fix #define /* EOF loop
21396-01-31 fix ## as arg to stringize macro to have ## value, not #
214	 add nonstopux and SYSTYPE_SVR4 to pp.def
21596-01-01 AT&T Research now
216	 fix catliteral line sync line number bug
217	 ppproto() converts non-directive <num>u to (unsigned)<num>
218	 switch to <regex.h>
21995-10-31 fix PP_COMPILE PP_TRANSITION bug that didn't allow space before #
220	 fix PP_TRANSITION \newline in definition complaint
22195-10-11 fix ppproto() PROTO_PLUSPLUS bug
222	 change ignored pp.incref PP_SYNC_POP to PP_SYNC_IGNORE
223	 add PP_PEDANTIC to handle gnu oversights (can't beat em ...)
224	 add memfatal() call
225	 relax newline in quote semantics
226	 proto inline -> __INLINE__
227	 fix __INLINE__ proto def for __GCC__>=2
22895-08-11 pp:preserve for easel (aka IFS) and imake
229	 fix pp:reguard ## macro output
230	 fix MARK PANIC with CATLITERAL
231	 PP_INPUT *.(s|S|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout
232	 ppargs() can't use isid() until after FSM_INIT
233	 -D#... for assert, -D%... for directives
234	 __STRICT_ANSI__ && __GNUC__ requires -pedantic for PP_STRICT
235	 #include <.../x> for include_next
23695-05-09 fix tokop() bug that concatenated adjacent strings
237	 don't concatenate directive string literals in proto
238	 split pp.mode into pp.mode and pp.option
239	 restrict pp.probe hostinfo output to the first token
240	 fix EOB/EOF pplex() nonterminating loop
241	 unused var cleanup
242	 add pp:reguard to emit #define and #undef (for C++ templates)
243	 add a few ppproto '\r's for NT
244	 fix T_BUILTIN ppsymbol -> ppsymkey pun
245	 fix pp:stringspan `#define x "' hang
24695-04-01 fix pp:hide for macros defined before the hide
247	 fix pp:map getline space canonicalization
248	 fix proto `<digits>[uU]'
249	 proto does // comments by default (fixes bug introduced 07/17/94)
250	 proto does "..." "..." string literal concatenation
251	 spice up proto copyright comments for nonexclusive license
252	 add hosttype assertion
253	 fix proto `typedef type fun(args)'
254	 proto copyright finishing touches
255	 fix overzealous "empty character constant" message
25695-02-14 pp:nopredefined probe info defines are now pp:builtin
257	 clean up pp:hosted conflicts
258	 tighten up unknown directive warning
259	 PP_INPUT *.(s|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout
260	 change newof(0,char,n,0) to newof(0,char,0,n) if 0 init not needed
261	 don't emit unkown directives inside #if 0 ... #endif
26295-01-19 *strict-* does not force STRICT
263	 token##null-last-variadic-arg consumes token (to match gcc)
264	 variadic actuals call be one less than arity (to match gcc)
265	 fix PLUSPLUS digraph bug that lost comment state
266	 tighten up PLUSPLUS //, /*, */ interaction warnings
267	 macro formals in "..." for COMPATIBILITY|TRANSITION
268	 macro formals in '...' for COMPATIBILITY|TRANSITION|!STRICT
269	 STRINGSPAN allows '\n' in '... too
270	 add PP_SYNC_* flags for pp.incref arg 3
271	 add PP_SYNC_INSERT for invented file references
272	 fix C++ fsm bug that popped out of comment in // /* */ ...
273	 PP_INPUT *.(s|S|asm|ASM) implies pp:nocatliteral pp:spaceout
27495-01-01 avoid string literal concatenation in pp.probe #if #predicate() tests
275	 fix pplib.h memcpy,strncmp PROTOMAIN prototypes (its a nop tho)
27694-11-11 fix readonly memory reference in refill
277	 add C++ digraphs (digraph = --trigraph)
278	 add C++ T_EXPLICIT -- did dos take over C++?
279	 fix improper ppproto() C++ __PARAM__ expansion
28094-11-01 allow #include string header arg concatenation (yes, its not ansi)
281	 #macdef macros are recursive
28294-10-01 fix C++ } loop in ppfsm/refill
283	 T_NOISES consumes symbol and optional paren group
284	 __builtin_* T_NOISES by default
285	 fix "..." "...MARK..." join
286	 fix STANDALONE */*comment*/
28794-09-11 fix pp.probe cp+strip with chmod u+w
28894-08-11 add -I<vdb-archive> to handle pax -x ppar header archives
289	 fix -D-Q header checkpoints
290	 add `pp:chop prefix' to chop prefix/ from include prefix/*/*
291	 add pp:keyargs for key=value macro formals/actuals (not for C!)
29294-06-01 fix ppcontrol/tokop() that botched pp:id, etc.
293	 add pp:plussplice to handle cfront // \<newline> ignorance
294	 inhibit trigraph conversion for pp:compatibility, duh
295	 new C++ keywords enabled by pp:keyword
296	 proto: int fun xxx((yyy)) is macro call, not decl
297	 fix !ALLMULTIPLE pp:load to SKIP between duplicated line syncs
298	 fix PP_DUMP for pp:noallmultiple, optimize pp:load format
299	 fix CPP CACHEOUTX() buffer boundary bug
30094-04-01 drop warnings for -X*
301	 fix ppproto() %% in comment bug for yacc proto
302	 PP_COMMENT now truncates comments to MAXTOKEN-4
30394-03-01 no pp:truncate for #pragma pp:macref
30494-01-01 fix STANDALONE+PP_TRUNCATE fsm macro bug
305	 drop __VOID__ from ppproto.c
30693-12-01 release
30793-11-11 fix PP_COMPILE+PP_TRUNCATE=8 bug for continue,unsigned,etc.
308	 add PP_LINEBASE for compilers that botch long line sync paths
309	 fix #if unsigned promotions
310	 aggressive interactive line splice flush
311	 fix #else inside multiline null dereference
312	 fix "..." newline space # COMPATIBILITY CATLITERAL bug
313	 fix m(a)b compatibility token pasting [cpp/test/ess.01.c]
314	 fix nested @X mark bug [cpp/test/net.02.c]
31593-10-11 add FSM_COMPATIBILITY for floating point hex -- yo ansi, anybody home
316	 add #else if|ifdef|ifndef for COMPATIBILITY but with warning
317	 drop PP_HOSTED, add ppop(PP_CDIR|PP_HOSTED,"-",n), -D-I for pp:cdir
31893-10-01 add pp:opspace to tokenize <binop><space>= to <binop>=
31993-08-11 drop ancient BCD constant (`...`) detection -- wake up cfront
320	 fix PP_TRUNCATE macro fsm bug that missed some expansions
321	 fix stringize bug that choked if space preceded #
322	 fix <function-like-macro> <identifier> bug that omitted space
32393-07-17 minor transition mode fix for string concatenation
324	 fix standalone macdef line sync buffer bug
325	 pp:noline turns off linesync, pp:line restores it
32693-06-22 add pp:prefix to control prefix include compatibility
32793-04-01 use probe_verbose in predefined symbol probe
32893-03-11 close fd after last file block read -- relaxes open fd limit
329	 remove pp.control nesting limit
330	 add `#rename old new'
331	 __STDC__ not defined for plusplus (until they figure it out)
33293-01-22 fix ansi macro args recursion bug
33393-01-11 fix '\377'<0 for signed char compilers
334	 add RELAX for __STDPP__directive directives
33592-12-25 fix #include guard test that omitted IN_tokens for CPP=1
33692-12-11 fix pp:truncate for STANDALONE and COMPILE
337	 fix pp:allmultiple again!
33892-11-30 add pp:final, pp:initial
339	 add __STDPP__directive and #(directive) as ??= alternative
340	 relax obsolete macro expand warning for _xxx||xxx
341	 retain quoted \newline when PP_LINEID != ""
342	 fix CATLITERAL hidden newline line sync
34392-11-11 fix COMPATIBILITY EOF in macro arg list and # in macro body
344	 fix [?\] on 4K buffer boundary bug that lost next refill()
345	 fix ppproto bug that botched -ih comments
34692-10-31 fix standalone -C bug that duplicated output buffer
347	 add pp:stringspan to handle gnu "<newline>" extension
34892-10-12 fix T_X_GROUP asm bug
349	 allow `#define a "b' pp:compatibility hack
35092-08-11 add PP_PLUSCOMMENT, pp:pluscomment probe
351	 add #(default v,d) #(empty v) #(iterate m,...)
352	 compatibility allows #define f(a,,b) for 2 args!
353	 probe now handles gcc -E -g3 to get gnu predefines
35492-07-17 fix pp:multiple again, fix ppproto() out of bounds
355	 PP_STANDARD is always PP_CDIR and PP_HOSTED
35692-07-11 add #import and #include_next probes
35792-06-11 fix bug where comments dissappeared after disabled macro in standalone
358	 COMPATIBILITY macro recursion bug fix may cause some to be missed
359	 PP_MACREF or -D-L- ignores #line until #line with file arg
36092-06-01 add pp:ignore
361	 fix probe of stdpp to handle -I[-+][CH]
36292-05-11 add pp:hide <id>, pp:note <id>, noticed(<id>), exists(<...>)
363	 add defined(__STDPP__<pragma>) feature test
364	 add PP_CDIR, pp:cdir for C++ extern "C" { ... } include wrapping
365	 pp.probe now handles predefines with values other than 1
36692-04-11 add inverse proto (K&R -> prototype) to ppproto
36792-04-01 release
36892-02-29 #include <...> inside <xxx.h> gets next xxx.h on -I list
369	 non-libpp generated symbols containing ' ' are not truncated
37092-02-11 conversion to new lexer brings time close to reiser (esp. w/gcc -O)
371	 combine standalone (ppcpp) tokenizing (pplex) and proto lex tables
372	 recode ppproto for standalone operation via PROTOMAIN
373	 add PP_NOHASH for PP_COMPILE front ends that rehash T_ID anyway
374	 delete PP_NOQUOTE
375	 delete #option(strict) test in probe in favor of non-hosted warnings
376	 add unsigned to ppexpr()
37791-10-11 add pp:truncate <len> for non-flexname compilers
37891-09-11 fix ppproto aggression on f(*y); -> f __PROTO__((*y));
37991-08-11 switch seterror() to error_info.*
380	 add pp:linefile to force file name in line sync
381	 add pp:spaceout for probed compilers that don't allow pp override
38291-06-11 fix ignored -I/usr/include bug
38391-04-11 set SYM_INIT in pp.macref for -U on cmd line
38491-01-31 replace pp:pragma and pp:directive with pp:map
385	 replace #assert and #unassert with #define #... and #undef #...
386	 #assert and #unassert compatibility retained via pp:map
387	 replace -D#directive with -D%directive (because of #assert change)
388	 add pp:splicecat for \<newline> #define token paste
389	 fix \<newline> bug that added space in COMPATIBILITY quoted strings
39090-12-11 fix #pragma pp:multiple
39190-11-11 generalize handling of non-standard keywords for COMPILE
392	 replace pp:identifier/PP_IDENTIFIER with pp:reserved/PP_RESERVED
393	 pp*keys* -> ppkey
394	 add PP_NOISE
395	 (gag) handle msdos paths by changing \ to / and retrying on failure
396	 (gag) handle msdos :> operator by pplex() '+' return
397	 add #pragma prototyped and ppproto.c for prototype conversion
398	 add unsigned long arg to PP_MACREF for hashed macro arity+value
39990-10-11 0f is not a float constant
400	 change -I-M to -I-I, file just lists include files to be ignored
401	 fix ppprobe for __STDC__==0 hybrids
402	 add pp.flags and PP_[a-z0-9]+ for exported state info
40390-10-01 fix standalone ppmacref for directives
404	 add `try' to C++ keywords
405	 fine tune a few COMPILE error messages
406	 privatize pp.h
40790-08-11 use opt_again in cmdargs() option parsers
408	 (gag) add pp:macref macro reference pragma to handle CC preprocessors
409	 (gag) add pp:spaceout to handle ansi + asm hacks
41090-07-17 remove spaces from macdef line sync (blew sun cc)
41190-06-11 add internal ppsymkey to avoid ppsymbol.value pun for SYM_KEYWORD
41290-05-01 fix catliteral bug of `"..." << ' -> `"..." <='
41390-04-01 fix `ifndef-define-endif' include wrapper test
41490-03-27 add setpreroot() to ppop() [ sleazy but well hidden ]
41590-03-22 pp.macref called for all undef's
41690-03-20 add <prefix>cpp checks to ppprobe
417	 add pp:hostdir before pp:include in ppprobe
418	 fix PP_HOSTDIR op with no dir arg
41990-03-15 System V CCS compatibility update
420	 add PP_ASSERT
421	 add -A for PP_ASSERT and -YI,dir for PP_STANDARD
422	 add ppincref.c and -H to use it
423	 -Xa defines __STDC__ to 0 (gak)
42490-03-09 duplicate macro formals cause level 2 error
42590-03-01 add #(ARGC) for (variadic) macro arg count
42690-02-11 fix line sync number bug in pppush()
42789-12-01 ignore leading = in pragma map for old pragma compatibility
428	 check for NEWLINE on first macdef line sync
42989-11-11 add -1 arg to pp.incref -- include skipped
430	 STRICT 0x7e-macro is T_INVALID per standard
43189-10-31 put all C keys in ppckeys.c, C++ keys in pppkeys.c
432	 add pp:identifier pragma to selectively undo PP_COMPILE keywords
433	 add tokop() to ppcontrol to support multi-valued pragmas
434	 add #ifndef...#endif include optimization for STRICT
43589-10-27 use REF_NORMAL, REF_IF, REF_UNDEF for pp.macref arg2
43689-10-17 fix c(x)y compatibility pasting bug
437	 #line 1 "f" now marks "f" included
43889-10-11 enable -I. during initialization
43989-10-01 inhibit pp:linetype syncs for top level #line directives
440	 ----- see HISTORY -----
441