Support non-ASCII correctly in character classes, test this.
src/ChangeLog addition:
2012-04-21 Aidan Kehoe <kehoea@parhasard.net>
Support non-ASCII correctly in character classes ([:alnum:] and
friends).
* regex.c:
* regex.c (ISBLANK, ISUNIBYTE): New. Make these and friends
independent of the locale, since we want them to be consistent in
XEmacs.
* regex.c (print_partial_compiled_pattern): Print the flags for
charset_mule; don't print non-ASCII as the character values in
ranges, this breaks with locales.
* regex.c (enum):
Define various flags the charset_mule and charset_mule_not opcodes
can now take.
* regex.c (CHAR_CLASS_MAX_LENGTH): Update this.
* regex.c (re_iswctype, re_wctype): New, from GNU.
* regex.c (re_wctype_can_match_non_ascii): New; used when deciding
on whether to use charset_mule or the ASCII-only regex character
set opcode.
* regex.c (regex_compile):
Error correctly on long, non-existent character class names.
Break out the handling of charsets that can match non-ASCII into a
separate clause. Use compile_char_class when compiling character
classes.
* regex.c (compile_char_class): New. Used in regex_compile when
compiling character sets that may match non-ASCII.
* regex.c (re_compile_fastmap):
If there are flags set for charset_mule or charset_mule_not, we
can't use the fastmap (since we need to check syntax table values
that aren't available there).
* regex.c (re_match_2_internal):
Check the new flags passed to the charset_mule{,_not} opcode,
observe them if appropriate.
* regex.h:
* regex.h (enum):
Expose re_wctype_t here, imported from GNU.
tests/ChangeLog addition:
2012-04-21 Aidan Kehoe <kehoea@parhasard.net>
* automated/regexp-tests.el:
* automated/regexp-tests.el (Assert-char-class):
Check that #'string-match errors correctly with an over-long
character class name.
Add tests for character class functionality that supports
non-ASCII characters. These tests expose bugs in GNU Emacs
24.0.94.2, but pass under current XEmacs.
author |
Aidan Kehoe <kehoea@parhasard.net> |
date |
Sat, 21 Apr 2012 18:58:28 +0100 |
parents |
d96db265d893 |
children |
0ef278ff2894 |
rev |
line source |
623
|
1 This directory tree holds version 21.5 of XEmacs.
|
|
2
|
2564
|
3 The information in this file has been superseded by the XEmacs FAQ.
|
623
|
4
|
2564
|
5 The easiest way to read the FAQ is to go to
|
623
|
6
|
2564
|
7 http://www.xemacs.org/Documentation/21.5/html/xemacs-faq_1.html
|
623
|
8
|
2564
|
9 You can also the local copy of the FAQ inside XEmacs by using
|
|
10 use Help->XEmacs FAQ from the menu, or `C-h F'.
|
0
|
11
|
2564
|
12 If you don't have XEmacs running and can't access the web,
|
|
13 look directly at `man/xemacs-faq.texi' or `info/xemacs-faq.info'.
|
623
|
14
|
|
15
|