1N/A10-09-01 RE errors => exit(2)
1N/A10-09-01
ppcall.c: no disgnostic for 0 actual args for 1 formal arg
1N/A10-06-16
ppsearch.c: try parent prefix if -I- include search fails
1N/A10-06-01 sync with ast api 20100601
1N/A09-01-06
ppcall.c: fix macro definition overwrite bug -- I know
1N/A09-01-05
ppcontrol.c: fix multiple include guard for #include outside guard
1N/A08-11-15
ppsearch.c: '\\' => '/' in first step; msvc complains about '\\' in #line!!
1N/A07-06-12
pplex.c: finish -D:preserve logic update for imake
1N/A07-06-07
pplex.c: handle -D:preserve S_CHRB splices
1N/A07-06-04
ppsearch.c: only apply pp:chop ?old?new? if original not found
1N/A07-03-11 add -D-Y pp:pedantic, PP_WARN macro formal parenthesis checks
1N/A06-09-23
ppop.c: check -I <dev,ino> for c and TYPE_HOSTED|TYPE_VENDOR attrs
1N/A06-09-23
pplex.c: add HOSTED check for "/* appears in // comment" -- doh
1N/A06-06-29
pp.probe: gcc pp:linefile probe (otherwise it can dump!)
1N/A ppfsm.c: handle compatibility ul numeric qualifiers
1N/A06-01-11
pplex.c: fix rpcgen pp:passthrough header splice bug
1N/A05-12-16
pplex.c: fix imake pp:passthrough comment splice bug
1N/A05-04-11
pplex.c: fix '"a" #s' catliteral + stringize bug
1N/A05-03-29
pp.probe: check $? and stderr messages for pp:lineid
1N/A04-10-01
pplex.c: really fix directive hidden newline logic
1N/A04-08-31
pplex.c: fix directive hidden newline logic
1N/A04-08-30 add pragma pp:pragmaflags PP_PRAGMAFLAGS, pp:system_header
1N/A04-08-11
ppproto.c: intercept "#(define|undef) extern" for __(EX|IM)PORT__
1N/A04-04-01
pp.probe: add stdinclude usrinclude path cleanup
1N/A04-02-29
ppproto.c: fix bug that skipped prototyped check during notices check
1N/A04-02-11 Makefile: fix %.yacc to handle cross-compile
1N/A03-12-12
ppcall.c: missing macro actual warned but expanded
1N/A03-11-12
ppexpr.c: fix premature #if expression token strip
1N/A03-06-21
ppproto.c: fix T_INVALID ? splice bug that did 0?val => 0?vaL
1N/A ppargs.c: add gnu options { -dD -dM -imacros -include -lang-* -lint }
1N/A03-05-18
ppcall.c: add SYM_FUNCTION '(' peek to avoid inappropriate ungetchr()
1N/A03-04-30 pp:mapinclude hosted <
std.h>="." will search only hosted dirs
1N/A pp.probe: add pp:mapinclude probe for namespace incursions
1N/A03-04-29 ignore()=>ppmapinclude(), add pp:mapinclude
1N/A03-03-25
ppop.c: PP_RESERVED now deletes old symbol before redef with lex value
1N/A03-02-28
ppsearch.c: fix -MM bug that missed prefix include hosted mark
1N/A03-02-18
pplex.c: handle COMPATIBILITY \" and \' in macro actuals
1N/A02-12-06 -I- pp:noprefix otherwise pp:prefix default
1N/A02-10-15
ppsearch.c: if PLUSPLUS && not found && no suffix then try with .h
1N/A02-10-10
pplex.c: fix does not end with `newline' bugs
1N/A02-09-10
pp.tab: add pp:passthrough to match -D-P docs
1N/A02-08-22
ppexpr.c: add __SOURCE__ and #match(string,pattern)
1N/A02-06-25
ppproto.c: fix pragma search bug that stopped after 8 comment lines
1N/A02-06-11
ppsearch.c: fix ... next include search to skip *all* intermediates
1N/A02-05-09
ppcontrol.c: inhibit `EOF in directive': newline warning will catch it
1N/A pplex.c: inhibit `newline in character constant' for hosted directives
1N/A02-03-15
ppproto.c: fix cpp pp:compatibility double line sync memory fault
1N/A02-03-11
pplex.c: add pp:modern to emit \a \v instead of octal forms
1N/A02-01-24
pplib.h: use vmalloc(Vmregion) if _std_malloc
1N/A02-01-14
ppproto.c: #pragma prototyped noticed -- has notice comment
1N/A02-01-10
ppproto.c: fix PROTO_FORCE|PROTO_PASS bug that disabled PROTO_FORCE
1N/A02-01-08
pplex.c: fix HEADEREXPAND|HEADEREXPANDALL logic
1N/A01-11-22
pplex.c: add pp:headerexpandall for gcc vs. msvc <...> expand diff
1N/A01-09-11
ppinput.c: use pathnative() for native fs representation
1N/A01-08-11 ppcontrol: fix ... and __VAR_ARGS__ for C99
1N/A ppsearch: fix SEARCH_NEXT bug that skipped the include stack
1N/A01-08-06 ppproto: preserve #! first line for # comments
1N/A01-07-17
gentab.sh: fix ksh test to omit pdksh (typeset -u fails)
1N/A01-06-26
ppproto.c: fix another buffer boundary bug that didn't preserve OTHER
1N/A01-05-24
pp.probe: fix pp:hostedtransition probe: only suncc can __STDC__==1?
1N/A01-04-25
pp.probe: split macro probe files for compilers that have #line limits
1N/A01-04-16
pp.tab: add pp:splicespace for mvs jcl decks -- the 60's live on
1N/A01-04-13 ppbuiltin: add __FUNCTION__ cache for functions that span the buffer
1N/A01-03-08
pp.tab,ppbuiltin,ppcontrol,probe: add pp:hostedtransition
1N/A01-02-14
ppcall.c: fix macro(tuple*) bug that truncated macro arg expand buffer
1N/A ppproto.c: add realloc prototype and memcpy=>memcopy strcpy=>strcopy
1N/A01-02-06 fix readonly buffer write (cpp test 07:2873)
1N/A01-02-04 fix -M* to properly handle .cxx .cpp .C input
1N/A fix IN_BUFFER pop bug that did not reset the token pointer
1N/A01-01-01 pp:headerexpand: space ok if not IN_MACRO
1N/A ppcall: hide if IN_FILE|IN_MACRO|IN_EXPAND
1N/A pplex: don't complain about ^L or ^Z as last char in file
1N/A00-12-25 add EXPOSE to expose hidden macros (for #import ...)
1N/A pp.probe: filter out invalid symbols for predefined macro scan, duh
1N/A pp:headerexpand: limit expansion to IN_MACRO
1N/A00-10-31 __STDC__==0 if HOSTED && _UWIN
1N/A00-10-26
pplib.h: change SEEK_SET to O_RDONLY for aix
1N/A00-09-18 add __FUNCTION__=#(FUNCTION), #define <a b> c
1N/A00-09-11 add pp:noproto (NOPROTO
pp.option) to disable ppproto()
1N/A00-09-01 ppproto: fix buffer slide bug
1N/A pragma: add pp:pragmaexpand to expand pragma args
1N/A ppcontrol: always disable pp:* pragma expansion
1N/A ppcall: fix pp:hide buffer clash
1N/A00-06-01 pplex: fix "\\U" and "\\u"
1N/A00-05-09 ppcontrol: fix C++ macro >+> invalid fuse
1N/A ppcontrol: 'macro' expansion only for COMPATIBILITY | TRANSITION
1N/A c9x: up to date with proposed standard
1N/A00-04-01
pp.tab: add allpossible and ALLPOSSIBLE
1N/A ppmacref: fix ref inside literal catenation
1N/A00-02-14 pppopen(): general comments with "bme" (begin middle end) string
1N/A99-11-19 is[a-z]*( => ppis[a-z]*(
1N/A ppproto: "..." [A-Z_]+ "..." ignores [A-Z_]+ if PROTOMAIN
1N/A99-11-11 ppproto: use astlicense()
1N/A99-10-31 ppproto: add PROTO_SHARP, update license parse
1N/A pplex: fix some MARK bugs seen by #define X "A B <C@D>"
1N/A99-10-01 add pp:stringsplit for "...\\n..." => "..."\n"..."
1N/A add pp:lineid to match PP_LINEID
1N/A99-07-17 ppbuiltin: fix getline() canon spacing for numbers
1N/A ppsearch: fix FILEDEPS not found \\n print
1N/A pplex: fix spurious FILEDEPS '.' empty character constant message
1N/A ppproto: fix up copyright notice for ksh93 style .author file
1N/A ppproto: check if notice text if file path
1N/A99-06-02 ppproto: add __MANGLE_package_DATA__ & __MANGLE_package_FUNC__
1N/A99-05-26 ppcontrol: all pragmas but prototyped need pp:
1N/A99-05-25 ppargs: long options
1N/A99-05-22 ppproto: changes for full ast vs. PROTO_STANDALONE
1N/A99-05-09 ppinput: add #pragma pp:native and (
pp.option&NATIVE) for native paths
1N/A99-04-22 ppproto: finish type=open notice
1N/A99-02-11 #define __STDC__ #(STDC); demote __STDC__ to 0 for HOSTED (thanks sun)
1N/A99-02-04 pplex: joined strings separated by \\\n
1N/A98-10-20 pplex: a few more (HOSTED|RELAX) checks
1N/A -D:preserve throws a bunch of stuff -- great for imake (yuk)
1N/A98-05-11 pplex: fix "..." \n off by one line count
1N/A98-02-14 ppcontrol: fix HEADEREXPAND missing NUL
1N/A98-01-23 ppproto: add _GNUC_ to _WIN32 check
1N/A97-11-11 ppcontrol: fix recursive use of
pp.hdrbuf for HEADEREXPAND
1N/A97-10-31 ppmacref,
pp.h: add ppmacref sum arg -- some parts assumed it!
1N/A97-10-01 pplex: loosen HEADEREXPAND check
1N/A97-08-11 pplex: fix COMPILE pplex() bug that did not reset NEWLINE for S_MACRO
1N/A pplex: PP_PRESERVE does not
pp.pragma <token> ... # <pragma-stuff>
1N/A ppcall: fix macro actual arg error checks
1N/A97-07-17
ppproto.c: C++ __INLINE__ prefixed with extern __MANGLE__
1N/A ppfsm.c: change C_* pseudo codes to not clash with ebcdic
1N/A96-12-25 add ms #@ charize to complement # stringize
1N/A ppproto: allow #ifdef'd function definions before {
1N/A ppproto: NoN() is not a function
1N/A96-12-06 add pp:headerexpand for ms that expands macros in expanded <...>
1N/A96-10-31 a few more line sync tweaks for EDG C++
1N/A96-10-11 fix pp:macref off by one for standalone pp (big suprise)
1N/A96-10-01 -D:macref -D-L -> #line (n-2)\n#pragma pp:macref ...
1N/A96-08-11 fix transition macro expansion
1N/A compatibility \" or \' does not start quote
1N/A drop ungetchr() in ppcall that modified macro values
1N/A unify #architecture() and #machine() probe
1N/A96-02-14 pp:noallmultiple works on hosted files too
1N/A fix #define /* EOF loop
1N/A96-01-31 fix ## as arg to stringize macro to have ## value, not #
1N/A96-01-01 AT&T Research now
1N/A fix catliteral line sync line number bug
1N/A ppproto() converts non-directive <num>u to (unsigned)<num>
1N/A95-10-31 fix PP_COMPILE PP_TRANSITION bug that didn't allow space before #
1N/A fix PP_TRANSITION \newline in definition complaint
1N/A95-10-11 fix ppproto() PROTO_PLUSPLUS bug
1N/A add PP_PEDANTIC to handle gnu oversights (can't beat em ...)
1N/A relax newline in quote semantics
1N/A proto inline -> __INLINE__
1N/A fix __INLINE__ proto def for __GCC__>=2
1N/A95-08-11 pp:preserve for easel (aka IFS) and imake
1N/A fix pp:reguard ## macro output
1N/A fix MARK PANIC with CATLITERAL
1N/A PP_INPUT *.(s|S|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout
1N/A ppargs() can't use isid() until after FSM_INIT
1N/A -D#... for assert, -D%... for directives
1N/A __STRICT_ANSI__ && __GNUC__ requires -pedantic for PP_STRICT
1N/A #include <.../x> for include_next
1N/A95-05-09 fix tokop() bug that concatenated adjacent strings
1N/A don't concatenate directive string literals in proto
1N/A add pp:reguard to emit #define and #undef (for C++ templates)
1N/A add a few ppproto '\r's for NT
1N/A fix T_BUILTIN ppsymbol -> ppsymkey pun
1N/A fix pp:stringspan `#define x "' hang
1N/A95-04-01 fix pp:hide for macros defined before the hide
1N/A fix pp:map getline space canonicalization
1N/A fix proto `<digits>[uU]'
1N/A proto does // comments by default (fixes bug introduced 07/17/94)
1N/A proto does "..." "..." string literal concatenation
1N/A spice up proto copyright comments for nonexclusive license
1N/A add hosttype assertion
1N/A fix proto `typedef type fun(args)'
1N/A proto copyright finishing touches
1N/A fix overzealous "empty character constant" message
1N/A95-02-14 pp:nopredefined probe info defines are now pp:builtin
1N/A clean up pp:hosted conflicts
1N/A tighten up unknown directive warning
1N/A PP_INPUT *.(s|as|AS|asm|ASM) implies pp:nocatliteral pp:spaceout
1N/A change newof(0,char,n,0) to newof(0,char,0,n) if 0 init not needed
1N/A don't emit unkown directives inside #if 0 ... #endif
1N/A95-01-19 *strict-* does not force STRICT
1N/A token##null-last-variadic-arg consumes token (to match gcc)
1N/A variadic actuals call be one less than arity (to match gcc)
1N/A fix PLUSPLUS digraph bug that lost comment state
1N/A tighten up PLUSPLUS //, /*, */ interaction warnings
1N/A macro formals in "..." for COMPATIBILITY|TRANSITION
1N/A macro formals in '...' for COMPATIBILITY|TRANSITION|!STRICT
1N/A STRINGSPAN allows '\n' in '... too
1N/A add PP_SYNC_INSERT for invented file references
1N/A fix C++ fsm bug that popped out of comment in // /* */ ...
1N/A PP_INPUT *.(s|S|asm|ASM) implies pp:nocatliteral pp:spaceout
1N/A95-01-01 avoid string literal concatenation in
pp.probe #if #predicate() tests
1N/A fix
pplib.h memcpy,strncmp PROTOMAIN prototypes (its a nop tho)
1N/A94-11-11 fix readonly memory reference in refill
1N/A add C++ digraphs (digraph = --trigraph)
1N/A add C++ T_EXPLICIT -- did dos take over C++?
1N/A fix improper ppproto() C++ __PARAM__ expansion
1N/A94-11-01 allow #include string header arg concatenation (yes, its not ansi)
1N/A #macdef macros are recursive
1N/A T_NOISES consumes symbol and optional paren group
1N/A __builtin_* T_NOISES by default
1N/A fix STANDALONE */*comment*/
1N/A94-08-11 add -I<vdb-archive> to handle pax -x ppar header archives
1N/A fix -D-Q header checkpoints
1N/A add `pp:chop prefix' to chop prefix/ from include prefix/*/*
1N/A add pp:plussplice to handle cfront // \<newline> ignorance
1N/A inhibit trigraph conversion for pp:compatibility, duh
1N/A new C++ keywords enabled by pp:keyword
1N/A proto: int fun xxx((yyy)) is macro call, not decl
1N/A fix !ALLMULTIPLE pp:load to SKIP between duplicated line syncs
1N/A fix PP_DUMP for pp:noallmultiple, optimize pp:load format
1N/A fix CPP CACHEOUTX() buffer boundary bug
1N/A94-04-01 drop warnings for -X*
1N/A fix ppproto() %% in comment bug for yacc proto
1N/A PP_COMMENT now truncates comments to MAXTOKEN-4
1N/A94-03-01 no pp:truncate for #pragma pp:macref
1N/A94-01-01 fix STANDALONE+PP_TRUNCATE fsm macro bug
1N/A93-11-11 fix PP_COMPILE+PP_TRUNCATE=8 bug for continue,unsigned,etc.
1N/A add PP_LINEBASE for compilers that botch long line sync paths
1N/A fix #if unsigned promotions
1N/A aggressive interactive line splice flush
1N/A fix #else inside multiline null dereference
1N/A fix "..." newline space # COMPATIBILITY CATLITERAL bug
1N/A93-10-11 add FSM_COMPATIBILITY for floating point hex -- yo ansi, anybody home
1N/A add #else if|ifdef|ifndef for COMPATIBILITY but with warning
1N/A drop PP_HOSTED, add ppop(PP_CDIR|PP_HOSTED,"-",n), -D-I for pp:cdir
1N/A93-10-01 add pp:opspace to tokenize <binop><space>= to <binop>=
1N/A93-08-11 drop ancient BCD constant (`...`) detection -- wake up cfront
1N/A fix PP_TRUNCATE macro fsm bug that missed some expansions
1N/A fix stringize bug that choked if space preceded #
1N/A fix <function-like-macro> <identifier> bug that omitted space
1N/A93-07-17 minor transition mode fix for string concatenation
1N/A fix standalone macdef line sync buffer bug
1N/A pp:noline turns off linesync, pp:line restores it
1N/A93-06-22 add pp:prefix to control prefix include compatibility
1N/A93-04-01 use probe_verbose in predefined symbol probe
1N/A93-03-11 close fd after last file block read -- relaxes open fd limit
1N/A add `#rename old new'
1N/A __STDC__ not defined for plusplus (until they figure it out)
1N/A93-01-22 fix ansi macro args recursion bug
1N/A93-01-11 fix '\377'<0 for signed char compilers
1N/A add RELAX for __STDPP__directive directives
1N/A92-12-25 fix #include guard test that omitted IN_tokens for CPP=1
1N/A92-12-11 fix pp:truncate for STANDALONE and COMPILE
1N/A fix pp:allmultiple again!
1N/A92-11-30 add pp:final, pp:initial
1N/A add __STDPP__directive and #(directive) as ??= alternative
1N/A relax obsolete macro expand warning for _xxx||xxx
1N/A retain quoted \newline when PP_LINEID != ""
1N/A fix CATLITERAL hidden newline line sync
1N/A92-11-11 fix COMPATIBILITY EOF in macro arg list and # in macro body
1N/A fix [?\] on 4K buffer boundary bug that lost next refill()
1N/A fix ppproto bug that botched -ih comments
1N/A92-10-31 fix standalone -C bug that duplicated output buffer
1N/A add pp:stringspan to handle gnu "<newline>" extension
1N/A92-10-12 fix T_X_GROUP asm bug
1N/A allow `#define a "b' pp:compatibility hack
1N/A92-08-11 add PP_PLUSCOMMENT, pp:pluscomment probe
1N/A add #(default v,d) #(empty v) #(iterate m,...)
1N/A compatibility allows #define f(a,,b) for 2 args!
1N/A probe now handles gcc -E -g3 to get gnu predefines
1N/A92-07-17 fix pp:multiple again, fix ppproto() out of bounds
1N/A PP_STANDARD is always PP_CDIR and PP_HOSTED
1N/A92-07-11 add #import and #include_next probes
1N/A92-06-11 fix bug where comments dissappeared after disabled macro in standalone
1N/A COMPATIBILITY macro recursion bug fix may cause some to be missed
1N/A PP_MACREF or -D-L- ignores #line until #line with file arg
1N/A92-06-01 add pp:ignore
1N/A fix probe of stdpp to handle -I[-+][CH]
1N/A92-05-11 add pp:hide <id>, pp:note <id>, noticed(<id>), exists(<...>)
1N/A add defined(__STDPP__<pragma>) feature test
1N/A add PP_CDIR, pp:cdir for C++ extern "C" { ... } include wrapping
1N/A pp.probe now handles predefines with values other than 1
1N/A92-04-11 add inverse proto (K&R -> prototype) to ppproto
1N/A non-libpp generated symbols containing ' ' are not truncated
1N/A92-02-11 conversion to new lexer brings time close to reiser (esp.
w/gcc -O)
1N/A combine standalone (ppcpp) tokenizing (pplex) and proto lex tables
1N/A recode ppproto for standalone operation via PROTOMAIN
1N/A add PP_NOHASH for PP_COMPILE front ends that rehash T_ID anyway
1N/A delete #option(strict) test in probe in favor of non-hosted warnings
1N/A add unsigned to ppexpr()
1N/A91-10-11 add pp:truncate <len> for non-flexname compilers
1N/A91-09-11 fix ppproto aggression on f(*y); -> f __PROTO__((*y));
1N/A91-08-11 switch seterror() to error_info.*
1N/A add pp:linefile to force file name in line sync
1N/A add pp:spaceout for probed compilers that don't allow pp override
1N/A91-01-31 replace pp:pragma and pp:directive with pp:map
1N/A replace #assert and #unassert with #define #... and #undef #...
1N/A #assert and #unassert compatibility retained via pp:map
1N/A replace -D#directive with -D%directive (because of #assert change)
1N/A add pp:splicecat for \<newline> #define token paste
1N/A fix \<newline> bug that added space in COMPATIBILITY quoted strings
1N/A90-12-11 fix #pragma pp:multiple
1N/A90-11-11 generalize handling of non-standard keywords for COMPILE
1N/A (gag) handle msdos paths by changing \ to / and retrying on failure
1N/A (gag) handle msdos :> operator by pplex() '+' return
1N/A add #pragma prototyped and
ppproto.c for prototype conversion
1N/A add unsigned long arg to PP_MACREF for hashed macro arity+value
1N/A90-10-11 0f is not a float constant
1N/A change -I-M to -I-I, file just lists include files to be ignored
1N/A fix ppprobe for __STDC__==0 hybrids
1N/A90-10-01 fix standalone ppmacref for directives
1N/A add `try' to C++ keywords
1N/A fine tune a few COMPILE error messages
1N/A90-08-11 use opt_again in cmdargs() option parsers
1N/A (gag) add pp:macref macro reference pragma to handle CC preprocessors
1N/A (gag) add pp:spaceout to handle ansi + asm hacks
1N/A90-07-17 remove spaces from macdef line sync (blew sun cc)
1N/A90-05-01 fix catliteral bug of `"..." << ' -> `"..." <='
1N/A90-04-01 fix `ifndef-define-endif' include wrapper test
1N/A90-03-27 add setpreroot() to ppop() [ sleazy but well hidden ]
1N/A90-03-20 add <prefix>cpp checks to ppprobe
1N/A add pp:hostdir before pp:include in ppprobe
1N/A fix PP_HOSTDIR op with no dir arg
1N/A90-03-15 System V CCS compatibility update
1N/A add -A for PP_ASSERT and -YI,dir for PP_STANDARD
1N/A -Xa defines __STDC__ to 0 (gak)
1N/A90-03-09 duplicate macro formals cause level 2 error
1N/A90-03-01 add #(ARGC) for (variadic) macro arg count
1N/A90-02-11 fix line sync number bug in pppush()
1N/A89-12-01 ignore leading = in pragma map for old pragma compatibility
1N/A check for NEWLINE on first macdef line sync
1N/A STRICT 0x7e-macro is T_INVALID per standard
1N/A add pp:identifier pragma to selectively undo PP_COMPILE keywords
1N/A add tokop() to ppcontrol to support multi-valued pragmas
1N/A add #ifndef...#endif include optimization for STRICT
1N/A89-10-27 use REF_NORMAL, REF_IF, REF_UNDEF for
pp.macref arg2
1N/A89-10-17 fix c(x)y compatibility pasting bug
1N/A #line 1 "f" now marks "f" included
1N/A89-10-11 enable -I. during initialization
1N/A89-10-01 inhibit pp:linetype syncs for top level #line directives
1N/A ----- see HISTORY -----