158f0484fSRodney W. Grimes# @(#)WHATSNEW 8.3 (Berkeley) 3/18/94 258f0484fSRodney W. Grimes 358f0484fSRodney W. GrimesNew in alpha3.4: The complex bug alluded to below has been fixed (in a 458f0484fSRodney W. Grimesslightly kludgey temporary way that may hurt efficiency a bit; this is 558f0484fSRodney W. Grimesanother "get it out the door for 4.4" release). The tests at the end of 658f0484fSRodney W. Grimesthe tests file have accordingly been uncommented. The primary sign of 758f0484fSRodney W. Grimesthe bug was that something like a?b matching ab matched b rather than ab. 858f0484fSRodney W. Grimes(The bug was essentially specific to this exact situation, else it would 958f0484fSRodney W. Grimeshave shown up earlier.) 1058f0484fSRodney W. Grimes 1158f0484fSRodney W. GrimesNew in alpha3.3: The definition of word boundaries has been altered 1258f0484fSRodney W. Grimesslightly, to more closely match the usual programming notion that "_" 1358f0484fSRodney W. Grimesis an alphabetic. Stuff used for pre-ANSI systems is now in a subdir, 1458f0484fSRodney W. Grimesand the makefile no longer alludes to it in mysterious ways. The 1558f0484fSRodney W. Grimesmakefile has generally been cleaned up some. Fixes have been made 1658f0484fSRodney W. Grimes(again!) so that the regression test will run without -DREDEBUG, at 1758f0484fSRodney W. Grimesthe cost of weaker checking. A workaround for a bug in some folks' 1858f0484fSRodney W. Grimes<assert.h> has been added. And some more things have been added to 1958f0484fSRodney W. Grimestests, including a couple right at the end which are commented out 2058f0484fSRodney W. Grimesbecause the code currently flunks them (complex bug; fix coming). 2158f0484fSRodney W. GrimesPlus the usual minor cleanup. 2258f0484fSRodney W. Grimes 2358f0484fSRodney W. GrimesNew in alpha3.2: Assorted bits of cleanup and portability improvement 2458f0484fSRodney W. Grimes(the development base is now a BSDI system using GCC instead of an ancient 2558f0484fSRodney W. GrimesSun system, and the newer compiler exposed some glitches). Fix for a 2658f0484fSRodney W. Grimesserious bug that affected REs using many [] (including REG_ICASE REs 2758f0484fSRodney W. Grimesbecause of the way they are implemented), *sometimes*, depending on 2858f0484fSRodney W. Grimesmemory-allocation patterns. The header-file prototypes no longer name 2958f0484fSRodney W. Grimesthe parameters, avoiding possible name conflicts. The possibility that 3058f0484fSRodney W. Grimessome clot has defined CHAR_MIN as (say) `-128' instead of `(-128)' is 3158f0484fSRodney W. Grimesnow handled gracefully. "uchar" is no longer used as an internal type 3258f0484fSRodney W. Grimesname (too many people have the same idea). Still the same old lousy 3358f0484fSRodney W. Grimesperformance, alas. 3458f0484fSRodney W. Grimes 3558f0484fSRodney W. GrimesNew in alpha3.1: Basically nothing, this release is just a bookkeeping 3658f0484fSRodney W. Grimesconvenience. Stay tuned. 3758f0484fSRodney W. Grimes 3858f0484fSRodney W. GrimesNew in alpha3.0: Performance is no better, alas, but some fixes have been 3958f0484fSRodney W. Grimesmade and some functionality has been added. (This is basically the "get 4058f0484fSRodney W. Grimesit out the door in time for 4.4" release.) One bug fix: regfree() didn't 4158f0484fSRodney W. Grimesfree the main internal structure (how embarrassing). It is now possible 4258f0484fSRodney W. Grimesto put NULs in either the RE or the target string, using (resp.) a new 4358f0484fSRodney W. GrimesREG_PEND flag and the old REG_STARTEND flag. The REG_NOSPEC flag to 4458f0484fSRodney W. Grimesregcomp() makes all characters ordinary, so you can match a literal 4558f0484fSRodney W. Grimesstring easily (this will become more useful when performance improves!). 4658f0484fSRodney W. GrimesThere are now primitives to match beginnings and ends of words, although 4758f0484fSRodney W. Grimesthe syntax is disgusting and so is the implementation. The REG_ATOI 4858f0484fSRodney W. Grimesdebugging interface has changed a bit. And there has been considerable 4958f0484fSRodney W. Grimesinternal cleanup of various kinds. 5058f0484fSRodney W. Grimes 5158f0484fSRodney W. GrimesNew in alpha2.3: Split change list out of README, and moved flags notes 5258f0484fSRodney W. Grimesinto Makefile. Macro-ized the name of regex(7) in regex(3), since it has 5358f0484fSRodney W. Grimesto change for 4.4BSD. Cleanup work in engine.c, and some new regression 5458f0484fSRodney W. Grimestests to catch tricky cases thereof. 5558f0484fSRodney W. Grimes 5658f0484fSRodney W. GrimesNew in alpha2.2: Out-of-date manpages updated. Regerror() acquires two 5758f0484fSRodney W. Grimessmall extensions -- REG_ITOA and REG_ATOI -- which avoid debugging kludges 5858f0484fSRodney W. Grimesin my own test program and might be useful to others for similar purposes. 5958f0484fSRodney W. GrimesThe regression test will now compile (and run) without REDEBUG. The 6058f0484fSRodney W. GrimesBRE \$ bug is fixed. Most uses of "uchar" are gone; it's all chars now. 6158f0484fSRodney W. GrimesChar/uchar parameters are now written int/unsigned, to avoid possible 6258f0484fSRodney W. Grimesportability problems with unpromoted parameters. Some unsigned casts have 6358f0484fSRodney W. Grimesbeen introduced to minimize portability problems with shifting into sign 6458f0484fSRodney W. Grimesbits. 6558f0484fSRodney W. Grimes 6658f0484fSRodney W. GrimesNew in alpha2.1: Lots of little stuff, cleanup and fixes. The one big 6758f0484fSRodney W. Grimesthing is that regex.h is now generated, using mkh, rather than being 6858f0484fSRodney W. Grimessupplied in the distribution; due to circularities in dependencies, 6958f0484fSRodney W. Grimesyou have to build regex.h explicitly by "make h". The two known bugs 7058f0484fSRodney W. Grimeshave been fixed (and the regression test now checks for them), as has a 7158f0484fSRodney W. Grimesproblem with assertions not being suppressed in the absence of REDEBUG. 7258f0484fSRodney W. GrimesNo performance work yet. 7358f0484fSRodney W. Grimes 7458f0484fSRodney W. GrimesNew in alpha2: Backslash-anything is an ordinary character, not an 7558f0484fSRodney W. Grimeserror (except, of course, for the handful of backslashed metacharacters 7658f0484fSRodney W. Grimesin BREs), which should reduce script breakage. The regression test 7758f0484fSRodney W. Grimeschecks *where* null strings are supposed to match, and has generally 7858f0484fSRodney W. Grimesbeen tightened up somewhat. Small bug fixes in parameter passing (not 7958f0484fSRodney W. Grimesharmful, but technically errors) and some other areas. Debugging 8058f0484fSRodney W. Grimesinvoked by defining REDEBUG rather than not defining NDEBUG. 8158f0484fSRodney W. Grimes 8258f0484fSRodney W. GrimesNew in alpha+3: full prototyping for internal routines, using a little 8358f0484fSRodney W. Grimeshelper program, mkh, which extracts prototypes given in stylized comments. 8458f0484fSRodney W. GrimesMore minor cleanup. Buglet fix: it's CHAR_BIT, not CHAR_BITS. Simple 8558f0484fSRodney W. Grimespre-screening of input when a literal string is known to be part of the 8658f0484fSRodney W. GrimesRE; this does wonders for performance. 8758f0484fSRodney W. Grimes 8858f0484fSRodney W. GrimesNew in alpha+2: minor bits of cleanup. Notably, the number "32" for the 8958f0484fSRodney W. Grimesword width isn't hardwired into regexec.c any more, the public header 9058f0484fSRodney W. Grimesfile prototypes the functions if __STDC__ is defined, and some small typos 9158f0484fSRodney W. Grimesin the manpages have been fixed. 9258f0484fSRodney W. Grimes 9358f0484fSRodney W. GrimesNew in alpha+1: improvements to the manual pages, and an important 9458f0484fSRodney W. Grimesextension, the REG_STARTEND option to regexec(). 95