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;