[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#33205: 26.1; unibyte/multibyte missing in rx.el
From: |
Eli Zaretskii |
Subject: |
bug#33205: 26.1; unibyte/multibyte missing in rx.el |
Date: |
Tue, 30 Oct 2018 19:27:56 +0200 |
> From: Mattias Engdegård <mattiase@acm.org>
> Date: Tue, 30 Oct 2018 16:03:28 +0100
>
> (setq s "A\310")
> "A\310"
> (multibyte-string-p s)
> nil
> (string-match-p "A[[:nonascii:]]" s)
> nil
> (string-match-p "A[[:ascii:]]" s)
> nil
> (string-match-p "A[[:unibyte:]]" s)
> nil
> (string-match-p "A[[:multibyte:]]" s)
> nil
> (string-match-p "A." s)
> 0
>
> What is going on here? ascii/nonascii and unibyte/multibyte are
> supposed to be complementary; if both fail, it's because there is
> nothing to match. Yet . matches.
I think it's a documentation bug: [:unibyte:] matches only ASCII
characters. IOW, it tests "unibyteness" in the internal
representation (which might be surprising, I know).
And [:nonascii:] is only defined for multibyte characters.
> (By the way, you may want to fix a trivial typo in a doc string in
> rx.el while you are at it: `indian-tow-byte')
Done, thanks.