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