packages icon
This directory contains the GNU regex library.  It is compliant with
POSIX.2, except for internationalization features.

See the file NEWS for a list of major changes in the current release.

See the file INSTALL for compilation instructions.  (The only thing
installed is the documentation; regex.c is compiled into regex.o, but
not installed anywhere.)

The subdirectory `doc' contains a (programmers') manual for the library.
It's probably out-of-date.  Improvements are welcome.

The subdirectory `test' contains the various tests we've written.

We know this code is not as fast as it might be.  If you have specific
suggestions, profiling results, or other such useful information to
report, please do.

Emacs 18 is not going use this revised regex (but Emacs 19 will).  If
you want to try it with Emacs 18, apply the patch at the end of this
file first.

Mail bug reports to bug-gnu-utils@prep.ai.mit.edu.

Please include an actual regular expression that fails (and the syntax
used to compile it); without that, there's no way to reproduce the bug,
so there's no way we can fix it.  Even if you include a patch, also
include the regular expression in error; otherwise, we can't know for
sure what you're trying to fix.

Here is the patch to make this version of regex work with Emacs 18.

*** ORIG/search.c	Tue Jan  8 13:04:55 1991
--- search.c	Sun Jan  5 10:57:00 1992
***************
*** 25,26 ****
--- 25,28 ----
  #include "commands.h"
+ 
+ #include <sys/types.h>
  #include "regex.h"
***************
*** 477,479 ****
  				/* really needed. */
!       && *(searchbuf.buffer) == (char) exactn /* first item is "exact match" */
        && searchbuf.buffer[1] + 2 == searchbuf.used) /*first is ONLY item */
--- 479,482 ----
  				/* really needed. */
!          /* first item is "exact match" */
!       && *(searchbuf.buffer) == (char) RE_EXACTN_VALUE
        && searchbuf.buffer[1] + 2 == searchbuf.used) /*first is ONLY item */
***************
*** 1273,1275 ****
    searchbuf.allocated = 100;
!   searchbuf.buffer = (char *) malloc (searchbuf.allocated);
    searchbuf.fastmap = search_fastmap;
--- 1276,1278 ----
    searchbuf.allocated = 100;
!   searchbuf.buffer = (unsigned char *) malloc (searchbuf.allocated);
    searchbuf.fastmap = search_fastmap;