Previously, latin-1 was incorrectly assumed (bug#70988).
* src/lread.c (readchar): Convert to raw byte.
* test/src/lread-tests.el (lread-unibyte-string-source): New test.
(cherry picked from commit
d13693ef4ec9428e2356b0de29913d533c5c4382)
else
{
c = SREF (readcharfun, read_from_string_index_byte);
+ if (!ASCII_CHAR_P (c))
+ c = BYTE8_TO_CHAR (c);
read_from_string_index++;
read_from_string_index_byte++;
}
(val (read (lambda () (pop s)))))
(should (equal (symbol-name val) "A∪ÿ"))))
+(ert-deftest lread-unibyte-string-source ()
+ (let* ((src "\"a\xff\"")
+ (val (read src)))
+ (should (equal val "a\xff")) ; not "aÿ"
+ (should-not (multibyte-string-p val))))
+
;;; lread-tests.el ends here