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