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