]> git.saurik.com Git - wxWidgets.git/blobdiff - src/regex/README
Fix crash in wxDC::GetMultiLineTextExtent() after last commit.
[wxWidgets.git] / src / regex / README
index 4838f1517868a989fadb19351566b7b1a03d3338..6c763a5556825b3d2a49e2f58e537bf2deb56464 100644 (file)
@@ -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.
-Contact - Ryan Norton <wxprojects@comcast.net>
-
-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 <assert.h>.
-
-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.
---------