1*f0957ccaSPeter Wemm# @(#)WHATSNEW 8.3 (Berkeley) 3/18/94 2*f0957ccaSPeter Wemm 3*f0957ccaSPeter WemmNew in alpha3.4: The complex bug alluded to below has been fixed (in a 4*f0957ccaSPeter Wemmslightly kludgey temporary way that may hurt efficiency a bit; this is 5*f0957ccaSPeter Wemmanother "get it out the door for 4.4" release). The tests at the end of 6*f0957ccaSPeter Wemmthe tests file have accordingly been uncommented. The primary sign of 7*f0957ccaSPeter Wemmthe bug was that something like a?b matching ab matched b rather than ab. 8*f0957ccaSPeter Wemm(The bug was essentially specific to this exact situation, else it would 9*f0957ccaSPeter Wemmhave shown up earlier.) 10*f0957ccaSPeter Wemm 11*f0957ccaSPeter WemmNew in alpha3.3: The definition of word boundaries has been altered 12*f0957ccaSPeter Wemmslightly, to more closely match the usual programming notion that "_" 13*f0957ccaSPeter Wemmis an alphabetic. Stuff used for pre-ANSI systems is now in a subdir, 14*f0957ccaSPeter Wemmand the makefile no longer alludes to it in mysterious ways. The 15*f0957ccaSPeter Wemmmakefile has generally been cleaned up some. Fixes have been made 16*f0957ccaSPeter Wemm(again!) so that the regression test will run without -DREDEBUG, at 17*f0957ccaSPeter Wemmthe cost of weaker checking. A workaround for a bug in some folks' 18*f0957ccaSPeter Wemm<assert.h> has been added. And some more things have been added to 19*f0957ccaSPeter Wemmtests, including a couple right at the end which are commented out 20*f0957ccaSPeter Wemmbecause the code currently flunks them (complex bug; fix coming). 21*f0957ccaSPeter WemmPlus the usual minor cleanup. 22*f0957ccaSPeter Wemm 23*f0957ccaSPeter WemmNew in alpha3.2: Assorted bits of cleanup and portability improvement 24*f0957ccaSPeter Wemm(the development base is now a BSDI system using GCC instead of an ancient 25*f0957ccaSPeter WemmSun system, and the newer compiler exposed some glitches). Fix for a 26*f0957ccaSPeter Wemmserious bug that affected REs using many [] (including REG_ICASE REs 27*f0957ccaSPeter Wemmbecause of the way they are implemented), *sometimes*, depending on 28*f0957ccaSPeter Wemmmemory-allocation patterns. The header-file prototypes no longer name 29*f0957ccaSPeter Wemmthe parameters, avoiding possible name conflicts. The possibility that 30*f0957ccaSPeter Wemmsome clot has defined CHAR_MIN as (say) `-128' instead of `(-128)' is 31*f0957ccaSPeter Wemmnow handled gracefully. "uchar" is no longer used as an internal type 32*f0957ccaSPeter Wemmname (too many people have the same idea). Still the same old lousy 33*f0957ccaSPeter Wemmperformance, alas. 34*f0957ccaSPeter Wemm 35*f0957ccaSPeter WemmNew in alpha3.1: Basically nothing, this release is just a bookkeeping 36*f0957ccaSPeter Wemmconvenience. Stay tuned. 37*f0957ccaSPeter Wemm 38*f0957ccaSPeter WemmNew in alpha3.0: Performance is no better, alas, but some fixes have been 39*f0957ccaSPeter Wemmmade and some functionality has been added. (This is basically the "get 40*f0957ccaSPeter Wemmit out the door in time for 4.4" release.) One bug fix: regfree() didn't 41*f0957ccaSPeter Wemmfree the main internal structure (how embarrassing). It is now possible 42*f0957ccaSPeter Wemmto put NULs in either the RE or the target string, using (resp.) a new 43*f0957ccaSPeter WemmREG_PEND flag and the old REG_STARTEND flag. The REG_NOSPEC flag to 44*f0957ccaSPeter Wemmregcomp() makes all characters ordinary, so you can match a literal 45*f0957ccaSPeter Wemmstring easily (this will become more useful when performance improves!). 46*f0957ccaSPeter WemmThere are now primitives to match beginnings and ends of words, although 47*f0957ccaSPeter Wemmthe syntax is disgusting and so is the implementation. The REG_ATOI 48*f0957ccaSPeter Wemmdebugging interface has changed a bit. And there has been considerable 49*f0957ccaSPeter Wemminternal cleanup of various kinds. 50*f0957ccaSPeter Wemm 51*f0957ccaSPeter WemmNew in alpha2.3: Split change list out of README, and moved flags notes 52*f0957ccaSPeter Wemminto Makefile. Macro-ized the name of regex(7) in regex(3), since it has 53*f0957ccaSPeter Wemmto change for 4.4BSD. Cleanup work in engine.c, and some new regression 54*f0957ccaSPeter Wemmtests to catch tricky cases thereof. 55*f0957ccaSPeter Wemm 56*f0957ccaSPeter WemmNew in alpha2.2: Out-of-date manpages updated. Regerror() acquires two 57*f0957ccaSPeter Wemmsmall extensions -- REG_ITOA and REG_ATOI -- which avoid debugging kludges 58*f0957ccaSPeter Wemmin my own test program and might be useful to others for similar purposes. 59*f0957ccaSPeter WemmThe regression test will now compile (and run) without REDEBUG. The 60*f0957ccaSPeter WemmBRE \$ bug is fixed. Most uses of "uchar" are gone; it's all chars now. 61*f0957ccaSPeter WemmChar/uchar parameters are now written int/unsigned, to avoid possible 62*f0957ccaSPeter Wemmportability problems with unpromoted parameters. Some unsigned casts have 63*f0957ccaSPeter Wemmbeen introduced to minimize portability problems with shifting into sign 64*f0957ccaSPeter Wemmbits. 65*f0957ccaSPeter Wemm 66*f0957ccaSPeter WemmNew in alpha2.1: Lots of little stuff, cleanup and fixes. The one big 67*f0957ccaSPeter Wemmthing is that regex.h is now generated, using mkh, rather than being 68*f0957ccaSPeter Wemmsupplied in the distribution; due to circularities in dependencies, 69*f0957ccaSPeter Wemmyou have to build regex.h explicitly by "make h". The two known bugs 70*f0957ccaSPeter Wemmhave been fixed (and the regression test now checks for them), as has a 71*f0957ccaSPeter Wemmproblem with assertions not being suppressed in the absence of REDEBUG. 72*f0957ccaSPeter WemmNo performance work yet. 73*f0957ccaSPeter Wemm 74*f0957ccaSPeter WemmNew in alpha2: Backslash-anything is an ordinary character, not an 75*f0957ccaSPeter Wemmerror (except, of course, for the handful of backslashed metacharacters 76*f0957ccaSPeter Wemmin BREs), which should reduce script breakage. The regression test 77*f0957ccaSPeter Wemmchecks *where* null strings are supposed to match, and has generally 78*f0957ccaSPeter Wemmbeen tightened up somewhat. Small bug fixes in parameter passing (not 79*f0957ccaSPeter Wemmharmful, but technically errors) and some other areas. Debugging 80*f0957ccaSPeter Wemminvoked by defining REDEBUG rather than not defining NDEBUG. 81*f0957ccaSPeter Wemm 82*f0957ccaSPeter WemmNew in alpha+3: full prototyping for internal routines, using a little 83*f0957ccaSPeter Wemmhelper program, mkh, which extracts prototypes given in stylized comments. 84*f0957ccaSPeter WemmMore minor cleanup. Buglet fix: it's CHAR_BIT, not CHAR_BITS. Simple 85*f0957ccaSPeter Wemmpre-screening of input when a literal string is known to be part of the 86*f0957ccaSPeter WemmRE; this does wonders for performance. 87*f0957ccaSPeter Wemm 88*f0957ccaSPeter WemmNew in alpha+2: minor bits of cleanup. Notably, the number "32" for the 89*f0957ccaSPeter Wemmword width isn't hardwired into regexec.c any more, the public header 90*f0957ccaSPeter Wemmfile prototypes the functions if __STDC__ is defined, and some small typos 91*f0957ccaSPeter Wemmin the manpages have been fixed. 92*f0957ccaSPeter Wemm 93*f0957ccaSPeter WemmNew in alpha+1: improvements to the manual pages, and an important 94*f0957ccaSPeter Wemmextension, the REG_STARTEND option to regexec(). 95