GNU bug report logs -
#1108
23.0.60; conversion bugs of rx.el
Previous Next
Full log
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello,
rx.el of the latest Emacs (23.0.60) has several problems.
I fixed them and attach a tar file including the following.
rx.diff - diff file
rx-new.el - new replacement of rx.el (as many changes)
rx-test.el - for simple output of original and fixed
RX.txt - test output of mine (not by the above)
Changelog
Fixed problems are as follows:
* (NOT CHAR-CLASS-SYMBOL) cause an error.
(rx (not word)) => (error "rx `not' syntax error: word")
(rx (not digit)) => (error "rx `not' syntax error: digit")
* "^" in ANY produce a unnecessary escape or incorrect result.
(rx (any "^")) => "[\\^]"
(rx (not (any "^"))) => "[^\\^]"
(rx (any ?^ ?a)) => "[\\^a]"
(rx (any ?a ?^)) => "[a\\^]"
* "]", "-" in ANY produce incorrect result.
(rx (any ?- ?a ?\])) => "[]-a]"
(rx (any "--]")) => "[]--]"
* NOT-NOT-ANY produce incorrect result for special characters.
(rx (not (not (any ".")))) => "."
* NOT-WORDCHAR is incorrectly treated as character class.
NOT-WORDCHAR should not be defined as a character class.
(rx (any ascii not-wordchar)) => "[[:ascii:]^[:word:]]"
* ANY accept syntax symbols and produce an senseless result.
(rx (any symbol-start symbol-end)) => "[__]"
(rx (any word-boundary)) => "[]"
* NOT-NOT to symbol produce an incorrect result.
(rx (not (not word-boundary))) => "[^\\B]"
(rx (not (not (syntax word)))) => "[^\\Sw]"
* Rx produce unnecessary shy groups easily.
(rx (or (and "a" "b") (and "b" "c"))) =>
"\\(?:\\(?:ab\\)\\|\\(?:bc\\)\\)"
* ANYTHING always produce shy groups even when unnecessary.
(rx anything) => "\\(?:.\\|\n\\)"
(rx (or anything "abc")) => "\\(?:\\(?:.\\|\n\\)\\|abc\\)"
* NO-GROUP in `rx-to-string' doesn't work as documented, or is
ambiguously defined.
(rx-to-string "ab" t) => "ab"
(rx-to-string "ab" nil) => "ab"
(rx-to-string '(and "a" "b") t) => "\\(?:ab\\)"
(rx-to-string '(and "a" "b") nil) => "\\(?:ab\\)"
Regards,
Shigeru
[rx.tgz (application/x-gzip, attachment)]
This bug report was last modified 16 years and 232 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.