X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=regex.h;h=1818d5f9681e03b90dfb7255afd6bc487ac555e1;hb=b04cd621280110172af09716045c4a91046aed3d;hp=d0c32d50d27cc3cbd06a1be1ebd2e206d9a4f96d;hpb=ef7d99e12b474ce2787bd6090e4ce0b4306a291e;p=gnulib.git diff --git a/regex.h b/regex.h index d0c32d50d..1818d5f96 100644 --- a/regex.h +++ b/regex.h @@ -144,19 +144,22 @@ typedef unsigned long int reg_syntax_t; If not set, then the GNU regex operators are recognized. */ #define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) +/* If this bit is set, then *?, +? and ?? match non greedily. */ +#define RE_FRUGAL (RE_NO_GNU_OPS << 1) + +/* If this bit is set, then (?:...) is treated as a shy group. */ +#define RE_SHY_GROUPS (RE_FRUGAL << 1) + +/* If this bit is set, ^ and $ only match at beg/end of buffer. */ +#define RE_NO_NEWLINE_ANCHOR (RE_SHY_GROUPS << 1) + /* If this bit is set, turn on internal regex debugging. If not set, and debugging was on, turn it off. This only works if regex.c is compiled -DDEBUG. We define this bit always, so that all that's needed to turn on debugging is to recompile regex.c; the calling code can always have this bit set, and it won't affect anything in the normal case. */ -#define RE_DEBUG (RE_NO_GNU_OPS << 1) - -/* If this bit is set, then *?, +? and ?? match non greedily. */ -#define RE_FRUGAL (RE_DEBUG << 1) - -/* If this bit is set, then (?:...) is treated as a shy group. */ -#define RE_SHY_GROUPS (RE_FRUGAL << 1) +#define RE_DEBUG (RE_NO_NEWLINE_ANCHOR << 1) /* This global variable defines the particular regexp syntax to use (for some interfaces). When a regexp is compiled, the syntax used is @@ -335,10 +338,10 @@ struct re_pattern_buffer unsigned char *buffer; /* Number of bytes to which `buffer' points. */ - unsigned long int allocated; + size_t allocated; /* Number of bytes actually used in `buffer'. */ - unsigned long int used; + size_t used; /* Syntax setting with which the pattern was compiled. */ reg_syntax_t syntax; @@ -387,9 +390,6 @@ struct re_pattern_buffer /* Similarly for an end-of-line anchor. */ unsigned not_eol : 1; - /* If true, an anchor at a newline matches. */ - unsigned newline_anchor : 1; - #ifdef emacs /* If true, multi-byte form in the `buffer' should be recognized as a multibyte character. */ @@ -535,10 +535,12 @@ extern int re_exec _RE_ARGS ((const char *)); # endif # endif #endif -/* For now unconditionally define __restrict_arr to expand to nothing. +/* For now conditionally define __restrict_arr to expand to nothing. Ideally we would have a test for the compiler which allows defining it to restrict. */ -#define __restrict_arr +#ifndef __restrict_arr +# define __restrict_arr +#endif /* POSIX compatibility. */ extern int regcomp _RE_ARGS ((regex_t *__restrict __preg, @@ -569,3 +571,6 @@ version-control: t trim-versions-without-asking: nil End: */ + +/* arch-tag: bda6e3ec-3c02-4237-a55a-01ad2e120083 + (do not change this comment) */