X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=regex.h;h=9ee2060a1ed9b04d3585df521ffc7095c0e71866;hb=825548e25793fe043c31a8c71975eb958b7cc53f;hp=b39fc1e770e66cfaea38ba2cb10a68bfbf9a30b7;hpb=cc66751b3408d8cd3cd6ba8776fba285d16d8218;p=gnulib.git diff --git a/regex.h b/regex.h index b39fc1e77..9ee2060a1 100644 --- a/regex.h +++ b/regex.h @@ -1,7 +1,7 @@ /* Definitions for data structures and routines for the regular expression library, version 0.12. - Copyright (C) 1985, 89, 90, 91, 92, 93, 95 Free Software Foundation, Inc. + Copyright (C) 1985,89,90,91,92,93,95,2000 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -135,9 +135,12 @@ typedef unsigned reg_syntax_t; without further backtracking. */ #define RE_NO_POSIX_BACKTRACKING (RE_NO_EMPTY_RANGES << 1) +/* If this bit is set, then (?:...) is treated as a shy group. */ +#define RE_SHY_GROUPS (RE_NO_POSIX_BACKTRACKING << 1) + /* If this bit is set, then an unmatched ) is ordinary. If not set, then an unmatched ) is invalid. */ -#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_POSIX_BACKTRACKING << 1) +#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_SHY_GROUPS << 1) /* This global variable defines the particular regexp syntax to use (for some interfaces). When a regexp is compiled, the syntax used is @@ -156,7 +159,7 @@ extern Lisp_Object re_match_object; (The [[[ comments delimit what gets put into the Texinfo file, so don't delete them!) */ /* [[[begin syntaxes]]] */ -#define RE_SYNTAX_EMACS (RE_CHAR_CLASSES | RE_INTERVALS) +#define RE_SYNTAX_EMACS (RE_CHAR_CLASSES | RE_INTERVALS | RE_SHY_GROUPS) #define RE_SYNTAX_AWK \ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ @@ -291,10 +294,8 @@ typedef enum compiled, the `re_nsub' field is available. All other fields are private to the regex routines. */ -#ifndef RE_TRANSLATE_TYPE +#ifndef RE_TRANSLATE_TYPE #define RE_TRANSLATE_TYPE char * -#define RE_TRANSLATE(TBL, C) ((TBL)[C]) -#define RE_TRANSLATE_P(TBL) (TBL) #endif struct re_pattern_buffer @@ -331,8 +332,7 @@ struct re_pattern_buffer /* Zero if this pattern cannot match the empty string, one else. Well, in truth it's used only in `re_search_2', to see whether or not we should use the fastmap, so we don't set - this absolutely perfectly; see `re_compile_fastmap' (the - `duplicate' case). */ + this absolutely perfectly; see `re_compile_fastmap'. */ unsigned can_be_null : 1; /* If REGS_UNALLOCATED, allocate space in the `regs' structure @@ -362,9 +362,11 @@ struct re_pattern_buffer /* 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. */ unsigned multibyte : 1; +#endif /* [[[end pattern_buffer]]] */ };