X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/161c73a392632b912fbd1897e8a217bc5ce1d5ca..75738bb65b5db3f5d3106e6fad78c7a4a07f993b:/src/regex/README diff --git a/src/regex/README b/src/regex/README index eb539783c5..6c763a5556 100644 --- a/src/regex/README +++ b/src/regex/README @@ -1,69 +1,41 @@ wxWindows regex ----------------- -This is a version of Henry Spencer's regex, -which was taken from postresql, which was -taken from the source of TCL (Toolkit Command Language). +--------------- +This is a version of Henry Spencer's regex, which was taken from the +source of TCL (Toolkit Command Language). It implements POSIX regular +expressions and also supports Unicode and some Perl5 extensions. + +The modifications made by the wxWindows team are as follows: + +regcustom.h +----------- +Types and constants appropriate for our use of the library are defined +here. + +regex.h +------- +This is unmodified. Note though, that a portion of it (clearly marked) +is copied from regcustom.h as part of the build process. + +regc_locale.c +------------- +This module provides character classifications. + +The current version from Tcl supports only a Unicode build. The +original code from Henry Spencer, on the other hand, was ASCII only. +Therefore, in order to support both, code from the ASCII version has been +incorporated into the Unicode version, conditionally compiled depending +on wxUSE_UNICODE. + +The only non-trivial dependencies were: Tcl_UniCharToUpper, +Tcl_UniCharToLower and Tcl_UniCharToTitle. The implementations of these +have also been incorporated (from Tcl). These in turn depend only the data +tables in tclUniData.c (which is unmodified). At some point wxWindows +may have it's own Unicode character classification code, at which point +these should be used instead. + +Other dependencies (on Tcl_DString) have been eliminated using wxWindows +wxChar functions. + +The ASCII version has also been extended to support character +classifications based on the current locale rather than ASCII only. -This is version of Henry Spencer's library is -modified by the wxWindows team. The modifications -made by the wxWindows team are as follows: -regcustom.h (all source code) -regex.h (function wrappers, other) -regc_locale.c (A function or two). -All the rest (Using standard c library routines instead of - postresql routines, various cleanup/optimizations) - -The source code that is wxWindows-specific is as follows: -regcustom.h (all source code, see comments in source on how to replace) -regex.h (where noted with comments in source, compiler workarounds) -regcomp.c (a few of the functions prefixed with wx_, - these may be replaced by c library routines) - -This newer library was chosen over the old one because -Henry Spencer's old library did not support unicode and -had some other bugs that were fixed by this one, and -the license was incompatible with the wxWindows license -and the gpl. - -Regular Expression syntax documentation is in re_syntax.n. -Programming information (from older regex, but with -the function wrappers implemented in the wxWindows -version, the usage is somewhat the same) is in regex.3. - -Modifications made by the wxWindows team are not licensed. - - -The original readme (from the TCL distribution) follows: - -alpha3.8 release. -Tue Aug 10 15:51:48 EDT 1999 -henry@spsystems.net (formerly henry@zoo.toronto.edu) - -See WHATSNEW for change listing. - -installation notes: --------- -Read the comments at the beginning of Makefile before running. - -Utils.h contains some things that just might have to be modified on -some systems, as well as a nested include (ugh) of . - -The "fake" directory contains quick-and-dirty fakes for some header -files and routines that old systems may not have. Note also that --DUSEBCOPY will make utils.h substitute bcopy() for memmove(). - -After that, "make r" will build regcomp.o, regexec.o, regfree.o, -and regerror.o (the actual routines), bundle them together into a test -program, and run regression tests on them. No output is good output. - -"make lib" builds just the .o files for the actual routines (when -you're happy with testing and have adjusted CFLAGS for production), -and puts them together into libregex.a. You can pick up either the -library or *.o ("make lib" makes sure there are no other .o files left -around to confuse things). - -Main.c, debug.c, split.c are used for regression testing but are not part -of the RE routines themselves. - -Regex.h goes in /usr/include. All other .h files are internal only. ---------