X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/7a22490f14441898e1c4f6679f5924f097f3bb34..b7e0ef72d0ac61b5d3ef06a3f565695c75ec2540:/src/regex.c diff --git a/src/regex.c b/src/regex.c index 06a9db2c55..4ab98bbf09 100644 --- a/src/regex.c +++ b/src/regex.c @@ -131,12 +131,12 @@ # include "character.h" # include "buffer.h" -/* Make syntax table lookup grant data in gl_state. */ -# define SYNTAX_ENTRY_VIA_PROPERTY - # include "syntax.h" # include "category.h" +/* Make syntax table lookup grant data in gl_state. */ +# define SYNTAX(c) syntax_property (c, 1) + # ifdef malloc # undef malloc # endif @@ -257,15 +257,10 @@ xrealloc (void *block, size_t size) enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 }; /* Dummy macros for non-Emacs environments. */ -# define CHAR_CHARSET(c) 0 -# define CHARSET_LEADING_CODE_BASE(c) 0 # define MAX_MULTIBYTE_LENGTH 1 # define RE_MULTIBYTE_P(x) 0 # define RE_TARGET_MULTIBYTE_P(x) 0 # define WORD_BOUNDARY_P(c1, c2) (0) -# define CHAR_HEAD_P(p) (1) -# define SINGLE_BYTE_CHAR_P(c) (1) -# define SAME_CHARSET_P(c1, c2) (1) # define BYTES_BY_CHAR_HEAD(p) (1) # define PREV_CHAR_BOUNDARY(p, limit) ((p)--) # define STRING_CHAR(p) (*(p)) @@ -279,8 +274,6 @@ enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 }; (c = ((p) == (str2) ? *((end1) - 1) : *((p) - 1))) # define GET_CHAR_AFTER(c, p, len) \ (c = *p, len = 1) -# define MAKE_CHAR(charset, c1, c2) (c1) -# define BYTE8_TO_CHAR(c) (c) # define CHAR_BYTE8_P(c) (0) # define CHAR_LEADING_CODE(c) (c) @@ -775,10 +768,12 @@ extract_number_and_incr (re_char **source) and the 2 bytes of flags at the start of the range table. */ #define CHARSET_RANGE_TABLE(p) (&(p)[4 + CHARSET_BITMAP_SIZE (p)]) +#ifdef emacs /* Extract the bit flags that start a range table. */ #define CHARSET_RANGE_TABLE_BITS(p) \ ((p)[2 + CHARSET_BITMAP_SIZE (p)] \ + (p)[3 + CHARSET_BITMAP_SIZE (p)] * 0x100) +#endif /* Return the address of end of RANGE_TABLE. COUNT is number of ranges (which is a pair of (start, end)) in the RANGE_TABLE. `* 2' @@ -1238,12 +1233,12 @@ re_set_syntax (reg_syntax_t syntax) WEAK_ALIAS (__re_set_syntax, re_set_syntax) /* Regexp to use to replace spaces, or NULL meaning don't. */ -static re_char *whitespace_regexp; +static const_re_char *whitespace_regexp; void re_set_whitespace_regexp (const char *regexp) { - whitespace_regexp = (re_char *) regexp; + whitespace_regexp = (const_re_char *) regexp; } WEAK_ALIAS (__re_set_syntax, re_set_syntax) @@ -1830,6 +1825,8 @@ struct range_table_work_area int bits; /* flag to record character classes */ }; +#ifdef emacs + /* Make sure that WORK_AREA can hold more N multibyte characters. This is used only in set_image_of_range and set_image_of_range_1. It expects WORK_AREA to be a pointer. @@ -1848,15 +1845,6 @@ struct range_table_work_area #define SET_RANGE_TABLE_WORK_AREA_BIT(work_area, bit) \ (work_area).bits |= (bit) -/* Bits used to implement the multibyte-part of the various character classes - such as [:alnum:] in a charset's range table. */ -#define BIT_WORD 0x1 -#define BIT_LOWER 0x2 -#define BIT_PUNCT 0x4 -#define BIT_SPACE 0x8 -#define BIT_UPPER 0x10 -#define BIT_MULTIBYTE 0x20 - /* Set a range (RANGE_START, RANGE_END) to WORK_AREA. */ #define SET_RANGE_TABLE_WORK_AREA(work_area, range_start, range_end) \ do { \ @@ -1865,6 +1853,8 @@ struct range_table_work_area (work_area).table[(work_area).used++] = (range_end); \ } while (0) +#endif /* emacs */ + /* Free allocated memory for WORK_AREA. */ #define FREE_RANGE_TABLE_WORK_AREA(work_area) \ do { \ @@ -1876,6 +1866,15 @@ struct range_table_work_area #define RANGE_TABLE_WORK_USED(work_area) ((work_area).used) #define RANGE_TABLE_WORK_BITS(work_area) ((work_area).bits) #define RANGE_TABLE_WORK_ELT(work_area, i) ((work_area).table[i]) + +/* Bits used to implement the multibyte-part of the various character classes + such as [:alnum:] in a charset's range table. */ +#define BIT_WORD 0x1 +#define BIT_LOWER 0x2 +#define BIT_PUNCT 0x4 +#define BIT_SPACE 0x8 +#define BIT_UPPER 0x10 +#define BIT_MULTIBYTE 0x20 /* Set the bit for character C in a list. */