Subject: bug#31376: 26.0.50; print-charset-text-property not honored

From: Noam Postavsky <[email-masked]>
Date: Mon, 14 May 2018 19:15:30 -0400

Eli Zaretskii <[email-masked]> writes:

> This seems to rely on some relationship between what char-charset
> returns and the car of charset-list, is that right?

The idea is to take the first if it's not eq to what char-charset
returns, or the second otherwise (on the assumption that it's different
from the first).  Perhaps clearer if I use cl-find:

    (defun print-tests--prints-with-charset-p (ch odd-charset)
      "Return t if `prin1-to-string' prints CH with the `charset' property.
    CH is propertized with a `charset' value according to
    ODD-CHARSET: if nil, then use the one returned by `char-charset',
    otherwise, use a different charset."
      (integerp
       (string-match
        "charset"
        (prin1-to-string
         (propertize (string ch)
                     'charset
                     (if odd-charset
                         (cl-find (char-charset ch) charset-list :test-not #'eq)
                       (char-charset ch)))))))