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