1*b30d1939SAndy Fiddaman12-06-06 ppline.c: preserve hosted sync even for normal sync
2*b30d1939SAndy Fiddaman12-02-29 pp.probe: handle predefined function-like macro definitions
3*b30d1939SAndy Fiddaman12-02-14 ppproto.c: fix "already noticed" logic
4*b30d1939SAndy Fiddaman11-08-30 ppproto.c: bump BLOCK to 16*1024 for (ppargs.c self-doc!)
5*b30d1939SAndy Fiddaman11-03-15 ppop.c: add ppok() readonly check for subset of ppop(PP_*)
6*b30d1939SAndy Fiddaman11-03-02 ppop.c,ppcontrol.c: use ppset() to handle readonly values
7*b30d1939SAndy Fiddaman10-09-01 RE errors => exit(2)
8*b30d1939SAndy Fiddaman10-09-01 ppcall.c: no disgnostic for 0 actual args for 1 formal arg
9*b30d1939SAndy Fiddaman10-06-29 ppargs.c: ignore -H<number> (hpux /opt/langtools/lbin/cpp.ansi)
10*b30d1939SAndy Fiddaman10-06-16 ppsearch.c: try parent prefix if -I- include search fails
11*b30d1939SAndy Fiddaman10-06-01 sync with ast api 20100601
1234f9b3eeSRoland Mainz09-02-02 pp.probe,probe.win32: check for compiler supplied __FUNCTION__
1334f9b3eeSRoland Mainz09-02-02 ppop.c: include pp_default.h/probe at end of builtin script
1434f9b3eeSRoland Mainz09-01-20 probe.win32: elide #pragma comment.*linker.*manifest
1534f9b3eeSRoland Mainz09-01-06 ppcall.c: fix macro definition overwrite bug -- I know
1634f9b3eeSRoland Mainz09-01-05 ppcontrol.c: fix multiple include guard for #include outside guard
1734f9b3eeSRoland Mainz08-12-07 pp.h,ppdata.c: fix ancient pptype and ppctype[] off by one
1834f9b3eeSRoland Mainz08-11-15 ppsearch.c: '\\' => '/' in first step; msvc complains about '\\' in #line!!
1934f9b3eeSRoland Mainz08-10-31 ppsearch.c: relax pp:nomultiple pedantry
2034f9b3eeSRoland Mainz08-10-30 pplex.c: handle =#x S_CHRB|SPLICE bug
217c2fbfb3SApril Chin08-05-11 ppproto.c: fix proto test 10 regression
227c2fbfb3SApril Chin07-09-21 ppproto.c: add "Public Domain" to the noticed list
237c2fbfb3SApril Chin07-08-11 probe.win32: add cl.exe setuid workaround, CC.VERSION[.STRING]
247c2fbfb3SApril Chin07-06-12 pplex.c: finish -D:preserve logic update for imake
257c2fbfb3SApril Chin07-06-07 pplex.c: handle -D:preserve S_CHRB splices
267c2fbfb3SApril Chin07-06-04 ppsearch.c: only apply pp:chop ?old?new? if original not found
277c2fbfb3SApril Chin07-03-11 add -D-Y pp:pedantic, PP_WARN macro formal parenthesis checks
287c2fbfb3SApril Chin07-01-26 pp.def,probe.win32: add _WCHAR_T_DEFINED
29da2e3ebdSchin06-09-23 ppop.c: check -I <dev,ino> for c and TYPE_HOSTED|TYPE_VENDOR attrs
30da2e3ebdSchin06-09-23 pplex.c: add HOSTED check for "/* appears in // comment" -- doh
31da2e3ebdSchin06-09-05 pp.probe: add version stamp comment
32da2e3ebdSchin06-06-29 pp.probe: gcc pp:linefile probe (otherwise it can dump!)
33da2e3ebdSchin06-06-28 ppproto.c: fix inappropriate __PARAM__ insertion
34da2e3ebdSchin06-05-09 pp.tab,ppcontrol.c,ppproto.c: add externalize
35da2e3ebdSchin	 ppfsm.c: handle compatibility ul numeric qualifiers
36da2e3ebdSchin06-02-28 probe.win32: add wchar_t probe
37da2e3ebdSchin06-01-11 pplex.c: fix rpcgen pp:passthrough header splice bug
38da2e3ebdSchin05-12-16 pplex.c: fix imake pp:passthrough comment splice bug
39da2e3ebdSchin05-09-16 pplib.h: add <string.h> for standalone proto
40da2e3ebdSchin05-07-31 pplib.h: finally trust __STDC__ headers
41da2e3ebdSchin05-04-11 pplex.c: fix '"a" #s' catliteral + stringize bug
42da2e3ebdSchin05-03-29 pp.probe: check $? and stderr messages for pp:lineid
43da2e3ebdSchin05-02-20 probe.win32: handle /platformsdk mount
44da2e3ebdSchin05-01-11 ppargs.c: fix -I-S docs
45da2e3ebdSchin	 ppinput.c: ppproto() only for COMPATIBILITY or PLUSPLUS
46da2e3ebdSchin04-10-22 ppproto.c: handle `type var[x][y]' arg prototype
47da2e3ebdSchin04-10-01 pplex.c: really fix directive hidden newline logic
48da2e3ebdSchin04-08-31 pplex.c: fix directive hidden newline logic
49da2e3ebdSchin	 ppcall.c: fix '(' peek bug that missed the MARK
50da2e3ebdSchin04-08-30 add pragma pp:pragmaflags PP_PRAGMAFLAGS, pp:system_header
51da2e3ebdSchin04-08-11 ppproto.c: intercept "#(define|undef) extern" for __(EX|IM)PORT__
52da2e3ebdSchin04-07-23 probe.win32: generalize #include dir order search
53da2e3ebdSchin04-07-22 ppsearch.c: access() => eaccess()
54da2e3ebdSchin04-05-20 ppproto.c: don't __PROTO__ `int fun __P((int));'
55da2e3ebdSchin04-04-15 probe.win32: sync up with uwin 2003-08-06 master -- oops
56da2e3ebdSchin04-04-01 pp.probe: add stdinclude usrinclude path cleanup
57da2e3ebdSchin04-02-29 ppproto.c: fix bug that skipped prototyped check during notices check
58da2e3ebdSchin	 ppproto.c: recognize `Copyright nn'
59da2e3ebdSchin04-02-14 ppproto.c: comment[0]==0 => no notice
60da2e3ebdSchin04-02-11 Makefile: fix %.yacc to handle cross-compile
61da2e3ebdSchin04-01-28 pp.h,pplib.h,ppop.c: add PP_RESET to restore original pp.symtab scope
62da2e3ebdSchin03-12-12 ppcall.c: missing macro actual warned but expanded
63da2e3ebdSchin03-11-12 ppexpr.c: fix premature #if expression token strip
64da2e3ebdSchin03-06-21 ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL
65da2e3ebdSchin03-06-10 ppargs.c: add -D-d and -D-m
66da2e3ebdSchin	 ppargs.c: add gnu options { -dD -dM -imacros -include -lang-* -lint }
67da2e3ebdSchin03-05-19 pplex.c: fix stray SKIPMACRO bug
68da2e3ebdSchin03-05-18 ppcall.c: add SYM_FUNCTION '(' peek to avoid inappropriate ungetchr()
69da2e3ebdSchin03-04-30 pp:mapinclude hosted <std.h>="." will search only hosted dirs
70da2e3ebdSchin	 pp.probe: add pp:mapinclude probe for namespace incursions
71da2e3ebdSchin03-04-29 ignore()=>ppmapinclude(), add pp:mapinclude
72da2e3ebdSchin03-03-25 ppop.c: PP_RESERVED now deletes old symbol before redef with lex value
73da2e3ebdSchin03-03-14 pp.probe: fix the #include_next probe
74da2e3ebdSchin03-02-28 ppsearch.c: fix -MM bug that missed prefix include hosted mark
75da2e3ebdSchin03-02-18 pplex.c: handle COMPATIBILITY \" and \' in macro actuals
76da2e3ebdSchin03-01-23 probe.win32: mingw32 tweaks
77da2e3ebdSchin02-12-17 ppargs.c: document -I-!
78da2e3ebdSchin02-12-06 -I- pp:noprefix otherwise pp:prefix default
79da2e3ebdSchin02-11-29 probe.win32: added __INTSIZE, drop dm pp:noallmultiple
80da2e3ebdSchin02-11-26 pp.def: add STDC_HOSTED
81da2e3ebdSchin	 probe.win32: add C95 and C99 STDC predefined macros
82da2e3ebdSchin02-10-30 ppfsm.h: add boundary check to IDSTATE()
83da2e3ebdSchin02-10-18 probe.win32: update for mingw
84da2e3ebdSchin02-10-15 ppsearch.c: if PLUSPLUS && not found && no suffix then try with .h
85da2e3ebdSchin02-10-10 pplex.c: fix does not end with `newline' bugs
86da2e3ebdSchin02-10-01 ppop.c,ppargs.c: -I-I => -I-M with proper docs; -I-I for PP_IGNORE
87da2e3ebdSchin02-09-21 pp.probe: add pp:nocatliteral test
88da2e3ebdSchin02-09-10 pp.tab: add pp:passthrough to match -D-P docs
89da2e3ebdSchin02-08-30 probe.win32: fix for borland cc -E
90da2e3ebdSchin02-08-22 ppexpr.c: add __SOURCE__ and #match(string,pattern)
91da2e3ebdSchin02-06-25 ppproto.c: fix pragma search bug that stopped after 8 comment lines
92da2e3ebdSchin02-06-11 ppsearch.c: fix ... next include search to skip *all* intermediates
93da2e3ebdSchin02-05-28 probe.win32: updates for { mingw }
94da2e3ebdSchin	 ppsearch.c: don't use inherited prefix for <...> -- duh
95da2e3ebdSchin02-05-24 ppcontrol.c: simplify getline() space canonicalization
96da2e3ebdSchin	 probe.win32: updates for { digital-mars borland lcc }
97da2e3ebdSchin02-05-20 ppcontrol.c: update to use regsubcomp(),regsubexec()
98da2e3ebdSchin02-05-09 ppcontrol.c: inhibit `EOF in directive': newline warning will catch it
99da2e3ebdSchin	 pplex.c: inhibit `newline in character constant' for hosted directives
100da2e3ebdSchin02-05-06 probe.win32: add more win32 compilers
101da2e3ebdSchin02-04-15 probe.win32: handle long long unsigned int
102da2e3ebdSchin02-04-12 ppproto.c: fix NOTICED check
103da2e3ebdSchin02-03-15 ppproto.c: fix cpp pp:compatibility double line sync memory fault
104da2e3ebdSchin02-03-11 pplex.c: add pp:modern to emit \a \v instead of octal forms
105da2e3ebdSchin02-02-14 ppargs.c: fix -D or -U as last arg core dump
106da2e3ebdSchin02-01-24 pplib.h: use vmalloc(Vmregion) if _std_malloc
107da2e3ebdSchin02-01-23 probe.win32: add more msvc predefined macro candidates
108da2e3ebdSchin02-01-14 ppproto.c: #pragma prototyped noticed -- has notice comment
109da2e3ebdSchin02-01-10 ppproto.c: fix PROTO_FORCE|PROTO_PASS bug that disabled PROTO_FORCE
110da2e3ebdSchin02-01-08 pplex.c: fix HEADEREXPAND|HEADEREXPANDALL logic
111da2e3ebdSchin01-11-22 pplex.c: add pp:headerexpandall for gcc vs. msvc <...> expand diff
112da2e3ebdSchin	 pp.probe: add pp:headerexpandall test
113da2e3ebdSchin01-10-20 pplex.c: fix pp:splicespace inside "..."
114da2e3ebdSchin01-09-11 ppinput.c: use pathnative() for native fs representation
115da2e3ebdSchin01-08-31 pp.probe: handle -Dmacro(args)=value
116da2e3ebdSchin01-08-11 ppcontrol: fix ... and __VAR_ARGS__ for C99
117da2e3ebdSchin	 ppsearch: fix SEARCH_NEXT bug that skipped the include stack
118da2e3ebdSchin01-08-06 ppproto: preserve #! first line for # comments
119da2e3ebdSchin01-07-17 gentab.sh: fix ksh test to omit pdksh (typeset -u fails)
120da2e3ebdSchin01-06-26 ppproto.c: fix another buffer boundary bug that didn't preserve OTHER
121da2e3ebdSchin01-06-06 ppsearch.c: list PP_FILEDEPS headers once
122da2e3ebdSchin01-06-01 pp.h,ppop.c,ppsearch.c: allow multiple PP_FILEDEPS (-M)
123da2e3ebdSchin01-05-24 pp.probe: fix pp:hostedtransition probe: only suncc can __STDC__==1?
124da2e3ebdSchin01-04-25 pp.probe: split macro probe files for compilers that have #line limits
125da2e3ebdSchin01-04-19 pp.h,pplex.c,ppproto.c: fix { \a \E \v } EBCDIC translations
126da2e3ebdSchin01-04-16 pp.tab: add pp:splicespace for mvs jcl decks -- the 60's live on
127da2e3ebdSchin01-04-13 ppbuiltin: add __FUNCTION__ cache for functions that span the buffer
128da2e3ebdSchin01-03-08 pp.tab,ppbuiltin,ppcontrol,probe: add pp:hostedtransition
129da2e3ebdSchin01-02-22 pp.tab,ppfsm,pplex,pp.probe,probe.win32: add pp:zeof for ^Z => EOF
130da2e3ebdSchin01-02-14 ppcall.c: fix macro(tuple*) bug that truncated macro arg expand buffer
131da2e3ebdSchin	 pplex.c: fix # inside pp:pragmaexpand
132da2e3ebdSchin	 gentab.sh: change ksh test for openbsd /bin/sh
133da2e3ebdSchin	 ppproto.c: fix buffer boundary bug that lost call nesting
134da2e3ebdSchin	 ppproto.c: add realloc prototype and memcpy=>memcopy strcpy=>strcopy
135da2e3ebdSchin01-02-09 ppsearch.c: fix another pp.include null dereference
136da2e3ebdSchin01-02-07 ppcall.c: fix stack inequality checks
137da2e3ebdSchin	 ppcall.c: handle trailing \ in macro args
138da2e3ebdSchin01-02-06 fix readonly buffer write (cpp test 07:2873)
139da2e3ebdSchin01-02-04 fix -M* to properly handle .cxx .cpp .C input
140da2e3ebdSchin	 fix IN_BUFFER pop bug that did not reset the token pointer
141da2e3ebdSchin01-01-01 pp:headerexpand: space ok if not IN_MACRO
142da2e3ebdSchin	 ppcall: hide if IN_FILE|IN_MACRO|IN_EXPAND
143da2e3ebdSchin	 pplex: don't complain about ^L or ^Z as last char in file
144da2e3ebdSchin	 ppsearch: fix #include <.../foo.h> loop
145da2e3ebdSchin	 ppcontrol: manulally increment IN_RESCAN error_info.line
146da2e3ebdSchin00-12-25 add EXPOSE to expose hidden macros (for #import ...)
147da2e3ebdSchin	 probe.win32: add cc path *and* args to first line to avoid hash clash
148da2e3ebdSchin	 pp.probe: filter out invalid symbols for predefined macro scan, duh
149da2e3ebdSchin	 pp:headerexpand: limit expansion to IN_MACRO
150da2e3ebdSchin00-10-31 __STDC__==0 if HOSTED && _UWIN
151da2e3ebdSchin00-10-26 pplib.h: change SEEK_SET to O_RDONLY for aix
152da2e3ebdSchin00-10-17 pp.probe: __IMPORT__ => __STDPP__IMPORT__
153da2e3ebdSchin00-09-18 add __FUNCTION__=#(FUNCTION), #define <a b> c
154da2e3ebdSchin	 pp.probe: add probe_longlong
155da2e3ebdSchin	 probe.win32: add #define <long long>
156da2e3ebdSchin00-09-11 add pp:noproto (NOPROTO pp.option) to disable ppproto()
157da2e3ebdSchin00-09-01 ppproto: fix buffer slide bug
158da2e3ebdSchin00-08-11 pplb.h: check for <unistd.h> already included for PROTOMAIN
159da2e3ebdSchin	 pragma: add pp:pragmaexpand to expand pragma args
160da2e3ebdSchin	 ppcontrol: always disable pp:* pragma expansion
161da2e3ebdSchin	 ppcall: fix pp:hide buffer clash
162da2e3ebdSchin00-06-01 pplex: fix "\\U" and "\\u"
163da2e3ebdSchin00-05-22 ppsearch: fix uwin #include <C:/foo/bar.h>
164da2e3ebdSchin00-05-16 probe.win32: update reserved word list
165da2e3ebdSchin00-05-09 ppcontrol: fix C++ macro >+> invalid fuse
166da2e3ebdSchin	 ppcontrol: 'macro' expansion only for COMPATIBILITY | TRANSITION
167da2e3ebdSchin	 c9x: up to date with proposed standard
168da2e3ebdSchin00-04-01 pp.tab: add allpossible and ALLPOSSIBLE
169da2e3ebdSchin	 ppmacref: fix ref inside literal catenation
170da2e3ebdSchin00-02-14 pppopen(): general comments with "bme" (begin middle end) string
171da2e3ebdSchin00-01-11 pp.probe: hosttype now in C.probe
172da2e3ebdSchin99-11-19 is[a-z]*( => ppis[a-z]*(
173da2e3ebdSchin	 ppproto: "..." [A-Z_]+ "..." ignores [A-Z_]+ if PROTOMAIN
174da2e3ebdSchin99-11-11 ppproto: use astlicense()
175da2e3ebdSchin99-10-31 ppproto: add PROTO_SHARP, update license parse
176da2e3ebdSchin	 pplex: fix some MARK bugs seen by #define X "A B <C@D>"
177da2e3ebdSchin99-10-01 add pp:stringsplit for "...\\n..." => "..."\n"..."
178da2e3ebdSchin	 add pp:lineid to match PP_LINEID
179da2e3ebdSchin99-07-17 ppbuiltin: fix getline() canon spacing for numbers
180da2e3ebdSchin	 ppsearch: fix FILEDEPS not found \\n print
181da2e3ebdSchin	 pplex: fix spurious FILEDEPS '.' empty character constant message
182da2e3ebdSchin	 ppargs: fix usage error call and error_info.id default value
183da2e3ebdSchin	 ppproto: fix up copyright notice for ksh93 style .author file
184da2e3ebdSchin	 ppproto: check if notice text if file path
185da2e3ebdSchin99-06-02 ppproto: add __MANGLE_package_DATA__ & __MANGLE_package_FUNC__
186da2e3ebdSchin99-05-26 ppcontrol: all pragmas but prototyped need pp:
187da2e3ebdSchin99-05-25 ppargs: long options
188da2e3ebdSchin99-05-22 ppproto: changes for full ast vs. PROTO_STANDALONE
189da2e3ebdSchin99-05-09 ppinput: add #pragma pp:native and (pp.option&NATIVE) for native paths
190da2e3ebdSchin99-04-22 ppproto: finish type=open notice
191da2e3ebdSchin99-02-11 #define __STDC__ #(STDC); demote __STDC__ to 0 for HOSTED (thanks sun)
192da2e3ebdSchin99-02-04 pplex: joined strings separated by \\\n
193da2e3ebdSchin99-01-11 probe.win32: add _UWIN predef
194da2e3ebdSchin98-10-20 pplex: a few more (HOSTED|RELAX) checks
195da2e3ebdSchin	 -D:preserve throws a bunch of stuff -- great for imake (yuk)
196da2e3ebdSchin98-05-11 pplex: fix "..." \n off by one line count
197da2e3ebdSchin98-02-14 ppcontrol: fix HEADEREXPAND missing NUL
198da2e3ebdSchin98-01-23 ppproto: add _GNUC_ to _WIN32 check
199da2e3ebdSchin	 ppfsm: don't optimize for hp.pa
200da2e3ebdSchin97-11-11 ppcontrol: fix recursive use of pp.hdrbuf for HEADEREXPAND
201da2e3ebdSchin97-10-31 ppmacref,pp.h: add ppmacref sum arg -- some parts assumed it!
202da2e3ebdSchin97-10-01 pplex: loosen HEADEREXPAND check
203da2e3ebdSchin97-08-11 pplex: fix COMPILE pplex() bug that did not reset NEWLINE for S_MACRO
204da2e3ebdSchin	 pplex: PP_PRESERVE does not pp.pragma <token> ... # <pragma-stuff>
205da2e3ebdSchin	 pp.def: add UWIN
206da2e3ebdSchin	 ppcall: fix macro actual arg error checks
207da2e3ebdSchin97-07-17 ppproto.c: C++ __INLINE__ prefixed with extern __MANGLE__
208da2e3ebdSchin	 ppop.c: fix PP_RESERVED T_* lookup
209da2e3ebdSchin97-05-09 pp.def: add MVS :architecture:
210da2e3ebdSchin	 ppfsm.c: change C_* pseudo codes to not clash with ebcdic
211da2e3ebdSchin	 pp.probe: fix stdc.$src sed script
212da2e3ebdSchin97-04-01 ppcontrol.c: fix tokop() for PP_RESERVED
213da2e3ebdSchin96-12-25 add ms #@ charize to complement # stringize
214da2e3ebdSchin	 pp.probe now detects preincludes
215da2e3ebdSchin	 ppproto: allow #ifdef'd function definions before {
216da2e3ebdSchin	 ppproto: NoN() is not a function
217da2e3ebdSchin	 pp.key,ppkey.h: add int64
218da2e3ebdSchin	 ppargs.c: fix -M{DGM}*
219da2e3ebdSchin96-12-06 add pp:headerexpand for ms that expands macros in expanded <...>
220da2e3ebdSchin96-10-31 a few more line sync tweaks for EDG C++
221da2e3ebdSchin96-10-11 fix pp:macref off by one for standalone pp (big suprise)
222da2e3ebdSchin96-10-01 -D:macref -D-L -> #line (n-2)\n#pragma pp:macref ...
223da2e3ebdSchin96-08-11 fix transition macro expansion
224da2e3ebdSchin	 compatibility \" or \' does not start quote
225da2e3ebdSchin96-02-29 use <hashkey.h>
226da2e3ebdSchin	 drop ungetchr() in ppcall that modified macro values
227da2e3ebdSchin	 tighten the DEBUG PANIC case in ppcontrol.c
228da2e3ebdSchin	 unify #architecture() and #machine() probe
229da2e3ebdSchin	 add POSIX,WIN32,X86 to pp.sym
230da2e3ebdSchin	 tweak pp.probe
231da2e3ebdSchin96-02-14 pp:noallmultiple works on hosted files too
232da2e3ebdSchin	 fix #define /* EOF loop
233da2e3ebdSchin96-01-31 fix ## as arg to stringize macro to have ## value, not #
234da2e3ebdSchin	 add nonstopux and SYSTYPE_SVR4 to pp.def
235da2e3ebdSchin96-01-01 AT&T Research now
236da2e3ebdSchin	 fix catliteral line sync line number bug
237da2e3ebdSchin	 ppproto() converts non-directive <num>u to (unsigned)<num>
238da2e3ebdSchin	 switch to <regex.h>
239da2e3ebdSchin95-10-31 fix PP_COMPILE PP_TRANSITION bug that didn't allow space before #
240da2e3ebdSchin	 fix PP_TRANSITION \newline in definition complaint
241da2e3ebdSchin95-10-11 fix ppproto() PROTO_PLUSPLUS bug
242da2e3ebdSchin	 change ignored pp.incref PP_SYNC_POP to PP_SYNC_IGNORE
243da2e3ebdSchin	 add PP_PEDANTIC to handle gnu oversights (can't beat em ...)
244da2e3ebdSchin	 add memfatal() call
245da2e3ebdSchin	 relax newline in quote semantics
246da2e3ebdSchin	 proto inline -> __INLINE__
247da2e3ebdSchin	 fix __INLINE__ proto def for __GCC__>=2
248da2e3ebdSchin95-08-11 pp:preserve for easel (aka IFS) and imake
249da2e3ebdSchin	 fix pp:reguard ## macro output
250da2e3ebdSchin	 fix MARK PANIC with CATLITERAL
251da2e3ebdSchin	 PP_INPUT *.(s|S|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout
252da2e3ebdSchin	 ppargs() can't use isid() until after FSM_INIT
253da2e3ebdSchin	 -D#... for assert, -D%... for directives
254da2e3ebdSchin	 __STRICT_ANSI__ && __GNUC__ requires -pedantic for PP_STRICT
255da2e3ebdSchin	 #include <.../x> for include_next
256da2e3ebdSchin95-05-09 fix tokop() bug that concatenated adjacent strings
257da2e3ebdSchin	 don't concatenate directive string literals in proto
258da2e3ebdSchin	 split pp.mode into pp.mode and pp.option
259da2e3ebdSchin	 restrict pp.probe hostinfo output to the first token
260da2e3ebdSchin	 fix EOB/EOF pplex() nonterminating loop
261da2e3ebdSchin	 unused var cleanup
262da2e3ebdSchin	 add pp:reguard to emit #define and #undef (for C++ templates)
263da2e3ebdSchin	 add a few ppproto '\r's for NT
264da2e3ebdSchin	 fix T_BUILTIN ppsymbol -> ppsymkey pun
265da2e3ebdSchin	 fix pp:stringspan `#define x "' hang
266da2e3ebdSchin95-04-01 fix pp:hide for macros defined before the hide
267da2e3ebdSchin	 fix pp:map getline space canonicalization
268da2e3ebdSchin	 fix proto `<digits>[uU]'
269da2e3ebdSchin	 proto does // comments by default (fixes bug introduced 07/17/94)
270da2e3ebdSchin	 proto does "..." "..." string literal concatenation
271da2e3ebdSchin	 spice up proto copyright comments for nonexclusive license
272da2e3ebdSchin	 add hosttype assertion
273da2e3ebdSchin	 fix proto `typedef type fun(args)'
274da2e3ebdSchin	 proto copyright finishing touches
275da2e3ebdSchin	 fix overzealous "empty character constant" message
276da2e3ebdSchin95-02-14 pp:nopredefined probe info defines are now pp:builtin
277da2e3ebdSchin	 clean up pp:hosted conflicts
278da2e3ebdSchin	 tighten up unknown directive warning
279da2e3ebdSchin	 PP_INPUT *.(s|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout
280da2e3ebdSchin	 change newof(0,char,n,0) to newof(0,char,0,n) if 0 init not needed
281da2e3ebdSchin	 don't emit unkown directives inside #if 0 ... #endif
282da2e3ebdSchin95-01-19 *strict-* does not force STRICT
283da2e3ebdSchin	 token##null-last-variadic-arg consumes token (to match gcc)
284da2e3ebdSchin	 variadic actuals call be one less than arity (to match gcc)
285da2e3ebdSchin	 fix PLUSPLUS digraph bug that lost comment state
286da2e3ebdSchin	 tighten up PLUSPLUS //, /*, */ interaction warnings
287da2e3ebdSchin	 macro formals in "..." for COMPATIBILITY|TRANSITION
288da2e3ebdSchin	 macro formals in '...' for COMPATIBILITY|TRANSITION|!STRICT
289da2e3ebdSchin	 STRINGSPAN allows '\n' in '... too
290da2e3ebdSchin	 add PP_SYNC_* flags for pp.incref arg 3
291da2e3ebdSchin	 add PP_SYNC_INSERT for invented file references
292da2e3ebdSchin	 fix C++ fsm bug that popped out of comment in // /* */ ...
293da2e3ebdSchin	 PP_INPUT *.(s|S|asm|ASM) implies pp:nocatliteral pp:spaceout
294da2e3ebdSchin95-01-01 avoid string literal concatenation in pp.probe #if #predicate() tests
295da2e3ebdSchin	 fix pplib.h memcpy,strncmp PROTOMAIN prototypes (its a nop tho)
296da2e3ebdSchin94-11-11 fix readonly memory reference in refill
297da2e3ebdSchin	 add C++ digraphs (digraph = --trigraph)
298da2e3ebdSchin	 add C++ T_EXPLICIT -- did dos take over C++?
299da2e3ebdSchin	 fix improper ppproto() C++ __PARAM__ expansion
300da2e3ebdSchin94-11-01 allow #include string header arg concatenation (yes, its not ansi)
301da2e3ebdSchin	 #macdef macros are recursive
302da2e3ebdSchin94-10-01 fix C++ } loop in ppfsm/refill
303da2e3ebdSchin	 T_NOISES consumes symbol and optional paren group
304da2e3ebdSchin	 __builtin_* T_NOISES by default
305da2e3ebdSchin	 fix "..." "...MARK..." join
306da2e3ebdSchin	 fix STANDALONE */*comment*/
307da2e3ebdSchin94-09-11 fix pp.probe cp+strip with chmod u+w
308da2e3ebdSchin94-08-11 add -I<vdb-archive> to handle pax -x ppar header archives
309da2e3ebdSchin	 fix -D-Q header checkpoints
310da2e3ebdSchin	 add `pp:chop prefix' to chop prefix/ from include prefix/*/*
311da2e3ebdSchin	 add pp:keyargs for key=value macro formals/actuals (not for C!)
312da2e3ebdSchin94-06-01 fix ppcontrol/tokop() that botched pp:id, etc.
313da2e3ebdSchin	 add pp:plussplice to handle cfront // \<newline> ignorance
314da2e3ebdSchin	 inhibit trigraph conversion for pp:compatibility, duh
315da2e3ebdSchin	 new C++ keywords enabled by pp:keyword
316da2e3ebdSchin	 proto: int fun xxx((yyy)) is macro call, not decl
317da2e3ebdSchin	 fix !ALLMULTIPLE pp:load to SKIP between duplicated line syncs
318da2e3ebdSchin	 fix PP_DUMP for pp:noallmultiple, optimize pp:load format
319da2e3ebdSchin	 fix CPP CACHEOUTX() buffer boundary bug
320da2e3ebdSchin94-04-01 drop warnings for -X*
321da2e3ebdSchin	 fix ppproto() %% in comment bug for yacc proto
322da2e3ebdSchin	 PP_COMMENT now truncates comments to MAXTOKEN-4
323da2e3ebdSchin94-03-01 no pp:truncate for #pragma pp:macref
324da2e3ebdSchin94-01-01 fix STANDALONE+PP_TRUNCATE fsm macro bug
325da2e3ebdSchin	 drop __VOID__ from ppproto.c
326da2e3ebdSchin93-12-01 release
327da2e3ebdSchin93-11-11 fix PP_COMPILE+PP_TRUNCATE=8 bug for continue,unsigned,etc.
328da2e3ebdSchin	 add PP_LINEBASE for compilers that botch long line sync paths
329da2e3ebdSchin	 fix #if unsigned promotions
330da2e3ebdSchin	 aggressive interactive line splice flush
331da2e3ebdSchin	 fix #else inside multiline null dereference
332da2e3ebdSchin	 fix "..." newline space # COMPATIBILITY CATLITERAL bug
333da2e3ebdSchin	 fix m(a)b compatibility token pasting [cpp/test/ess.01.c]
334da2e3ebdSchin	 fix nested @X mark bug [cpp/test/net.02.c]
335da2e3ebdSchin93-10-11 add FSM_COMPATIBILITY for floating point hex -- yo ansi, anybody home
336da2e3ebdSchin	 add #else if|ifdef|ifndef for COMPATIBILITY but with warning
337da2e3ebdSchin	 drop PP_HOSTED, add ppop(PP_CDIR|PP_HOSTED,"-",n), -D-I for pp:cdir
338da2e3ebdSchin93-10-01 add pp:opspace to tokenize <binop><space>= to <binop>=
339da2e3ebdSchin93-08-11 drop ancient BCD constant (`...`) detection -- wake up cfront
340da2e3ebdSchin	 fix PP_TRUNCATE macro fsm bug that missed some expansions
341da2e3ebdSchin	 fix stringize bug that choked if space preceded #
342da2e3ebdSchin	 fix <function-like-macro> <identifier> bug that omitted space
343da2e3ebdSchin93-07-17 minor transition mode fix for string concatenation
344da2e3ebdSchin	 fix standalone macdef line sync buffer bug
345da2e3ebdSchin	 pp:noline turns off linesync, pp:line restores it
346da2e3ebdSchin93-06-22 add pp:prefix to control prefix include compatibility
347da2e3ebdSchin93-04-01 use probe_verbose in predefined symbol probe
348da2e3ebdSchin93-03-11 close fd after last file block read -- relaxes open fd limit
349da2e3ebdSchin	 remove pp.control nesting limit
350da2e3ebdSchin	 add `#rename old new'
351da2e3ebdSchin	 __STDC__ not defined for plusplus (until they figure it out)
352da2e3ebdSchin93-01-22 fix ansi macro args recursion bug
353da2e3ebdSchin93-01-11 fix '\377'<0 for signed char compilers
354da2e3ebdSchin	 add RELAX for __STDPP__directive directives
355da2e3ebdSchin92-12-25 fix #include guard test that omitted IN_tokens for CPP=1
356da2e3ebdSchin92-12-11 fix pp:truncate for STANDALONE and COMPILE
357da2e3ebdSchin	 fix pp:allmultiple again!
358da2e3ebdSchin92-11-30 add pp:final, pp:initial
359da2e3ebdSchin	 add __STDPP__directive and #(directive) as ??= alternative
360da2e3ebdSchin	 relax obsolete macro expand warning for _xxx||xxx
361da2e3ebdSchin	 retain quoted \newline when PP_LINEID != ""
362da2e3ebdSchin	 fix CATLITERAL hidden newline line sync
363da2e3ebdSchin92-11-11 fix COMPATIBILITY EOF in macro arg list and # in macro body
364da2e3ebdSchin	 fix [?\] on 4K buffer boundary bug that lost next refill()
365da2e3ebdSchin	 fix ppproto bug that botched -ih comments
366da2e3ebdSchin92-10-31 fix standalone -C bug that duplicated output buffer
367da2e3ebdSchin	 add pp:stringspan to handle gnu "<newline>" extension
368da2e3ebdSchin92-10-12 fix T_X_GROUP asm bug
369da2e3ebdSchin	 allow `#define a "b' pp:compatibility hack
370da2e3ebdSchin92-08-11 add PP_PLUSCOMMENT, pp:pluscomment probe
371da2e3ebdSchin	 add #(default v,d) #(empty v) #(iterate m,...)
372da2e3ebdSchin	 compatibility allows #define f(a,,b) for 2 args!
373da2e3ebdSchin	 probe now handles gcc -E -g3 to get gnu predefines
374da2e3ebdSchin92-07-17 fix pp:multiple again, fix ppproto() out of bounds
375da2e3ebdSchin	 PP_STANDARD is always PP_CDIR and PP_HOSTED
376da2e3ebdSchin92-07-11 add #import and #include_next probes
377da2e3ebdSchin92-06-11 fix bug where comments dissappeared after disabled macro in standalone
378da2e3ebdSchin	 COMPATIBILITY macro recursion bug fix may cause some to be missed
379da2e3ebdSchin	 PP_MACREF or -D-L- ignores #line until #line with file arg
380da2e3ebdSchin92-06-01 add pp:ignore
381da2e3ebdSchin	 fix probe of stdpp to handle -I[-+][CH]
382da2e3ebdSchin92-05-11 add pp:hide <id>, pp:note <id>, noticed(<id>), exists(<...>)
383da2e3ebdSchin	 add defined(__STDPP__<pragma>) feature test
384da2e3ebdSchin	 add PP_CDIR, pp:cdir for C++ extern "C" { ... } include wrapping
385da2e3ebdSchin	 pp.probe now handles predefines with values other than 1
386da2e3ebdSchin92-04-11 add inverse proto (K&R -> prototype) to ppproto
387da2e3ebdSchin92-04-01 release
388da2e3ebdSchin92-02-29 #include <...> inside <xxx.h> gets next xxx.h on -I list
389da2e3ebdSchin	 non-libpp generated symbols containing ' ' are not truncated
390da2e3ebdSchin92-02-11 conversion to new lexer brings time close to reiser (esp. w/gcc -O)
391da2e3ebdSchin	 combine standalone (ppcpp) tokenizing (pplex) and proto lex tables
392da2e3ebdSchin	 recode ppproto for standalone operation via PROTOMAIN
393da2e3ebdSchin	 add PP_NOHASH for PP_COMPILE front ends that rehash T_ID anyway
394da2e3ebdSchin	 delete PP_NOQUOTE
395da2e3ebdSchin	 delete #option(strict) test in probe in favor of non-hosted warnings
396da2e3ebdSchin	 add unsigned to ppexpr()
397da2e3ebdSchin91-10-11 add pp:truncate <len> for non-flexname compilers
398da2e3ebdSchin91-09-11 fix ppproto aggression on f(*y); -> f __PROTO__((*y));
399da2e3ebdSchin91-08-11 switch seterror() to error_info.*
400da2e3ebdSchin	 add pp:linefile to force file name in line sync
401da2e3ebdSchin	 add pp:spaceout for probed compilers that don't allow pp override
402da2e3ebdSchin91-06-11 fix ignored -I/usr/include bug
403da2e3ebdSchin91-04-11 set SYM_INIT in pp.macref for -U on cmd line
404da2e3ebdSchin91-01-31 replace pp:pragma and pp:directive with pp:map
405da2e3ebdSchin	 replace #assert and #unassert with #define #... and #undef #...
406da2e3ebdSchin	 #assert and #unassert compatibility retained via pp:map
407da2e3ebdSchin	 replace -D#directive with -D%directive (because of #assert change)
408da2e3ebdSchin	 add pp:splicecat for \<newline> #define token paste
409da2e3ebdSchin	 fix \<newline> bug that added space in COMPATIBILITY quoted strings
410da2e3ebdSchin90-12-11 fix #pragma pp:multiple
411da2e3ebdSchin90-11-11 generalize handling of non-standard keywords for COMPILE
412da2e3ebdSchin	 replace pp:identifier/PP_IDENTIFIER with pp:reserved/PP_RESERVED
413da2e3ebdSchin	 pp*keys* -> ppkey
414da2e3ebdSchin	 add PP_NOISE
415da2e3ebdSchin	 (gag) handle msdos paths by changing \ to / and retrying on failure
416da2e3ebdSchin	 (gag) handle msdos :> operator by pplex() '+' return
417da2e3ebdSchin	 add #pragma prototyped and ppproto.c for prototype conversion
418da2e3ebdSchin	 add unsigned long arg to PP_MACREF for hashed macro arity+value
419da2e3ebdSchin90-10-11 0f is not a float constant
420da2e3ebdSchin	 change -I-M to -I-I, file just lists include files to be ignored
421da2e3ebdSchin	 fix ppprobe for __STDC__==0 hybrids
422da2e3ebdSchin	 add pp.flags and PP_[a-z0-9]+ for exported state info
423da2e3ebdSchin90-10-01 fix standalone ppmacref for directives
424da2e3ebdSchin	 add `try' to C++ keywords
425da2e3ebdSchin	 fine tune a few COMPILE error messages
426da2e3ebdSchin	 privatize pp.h
427da2e3ebdSchin90-08-11 use opt_again in cmdargs() option parsers
428da2e3ebdSchin	 (gag) add pp:macref macro reference pragma to handle CC preprocessors
429da2e3ebdSchin	 (gag) add pp:spaceout to handle ansi + asm hacks
430da2e3ebdSchin90-07-17 remove spaces from macdef line sync (blew sun cc)
431da2e3ebdSchin90-06-11 add internal ppsymkey to avoid ppsymbol.value pun for SYM_KEYWORD
432da2e3ebdSchin90-05-01 fix catliteral bug of `"..." << ' -> `"..." <='
433da2e3ebdSchin90-04-01 fix `ifndef-define-endif' include wrapper test
434da2e3ebdSchin90-03-27 add setpreroot() to ppop() [ sleazy but well hidden ]
435da2e3ebdSchin90-03-22 pp.macref called for all undef's
436da2e3ebdSchin90-03-20 add <prefix>cpp checks to ppprobe
437da2e3ebdSchin	 add pp:hostdir before pp:include in ppprobe
438da2e3ebdSchin	 fix PP_HOSTDIR op with no dir arg
439da2e3ebdSchin90-03-15 System V CCS compatibility update
440da2e3ebdSchin	 add PP_ASSERT
441da2e3ebdSchin	 add -A for PP_ASSERT and -YI,dir for PP_STANDARD
442da2e3ebdSchin	 add ppincref.c and -H to use it
443da2e3ebdSchin	 -Xa defines __STDC__ to 0 (gak)
444da2e3ebdSchin90-03-09 duplicate macro formals cause level 2 error
445da2e3ebdSchin90-03-01 add #(ARGC) for (variadic) macro arg count
446da2e3ebdSchin90-02-11 fix line sync number bug in pppush()
447da2e3ebdSchin89-12-01 ignore leading = in pragma map for old pragma compatibility
448da2e3ebdSchin	 check for NEWLINE on first macdef line sync
449da2e3ebdSchin89-11-11 add -1 arg to pp.incref -- include skipped
450da2e3ebdSchin	 STRICT 0x7e-macro is T_INVALID per standard
451da2e3ebdSchin89-10-31 put all C keys in ppckeys.c, C++ keys in pppkeys.c
452da2e3ebdSchin	 add pp:identifier pragma to selectively undo PP_COMPILE keywords
453da2e3ebdSchin	 add tokop() to ppcontrol to support multi-valued pragmas
454da2e3ebdSchin	 add #ifndef...#endif include optimization for STRICT
455da2e3ebdSchin89-10-27 use REF_NORMAL, REF_IF, REF_UNDEF for pp.macref arg2
456da2e3ebdSchin89-10-17 fix c(x)y compatibility pasting bug
457da2e3ebdSchin	 #line 1 "f" now marks "f" included
458da2e3ebdSchin89-10-11 enable -I. during initialization
459da2e3ebdSchin89-10-01 inhibit pp:linetype syncs for top level #line directives
460da2e3ebdSchin	 ----- see HISTORY -----
461