In article <[EMAIL PROTECTED]>, Chris <[EMAIL PROTECTED]> writes:
> Hex 80 is equal to octal 200, so why does string-equal give these results? ELISP> (string-equal "\200\x80" "\x80\200") > t ELISP> (string-equal "\200" "\x80") > nil This is another weirdness of multibyte/unibyte mixture. I don't remember why but the Lisp reader reads "\200" as a unibyte string but if \x notation appears in a string, it is read as a multibyte string. So, both "\200\x80" and "\x80\200" are read into the same multibyte string "\x80\x80". Thus, the first form returns t. But, as two strings differ in multibyteness in the second form, nil is returned. FYI, (compare-strings "\200" 0 1 "\x80" 0 1) returns t because it adjusts multibyteness before comparing. --- Kenichi Handa [EMAIL PROTECTED] _______________________________________________ emacs-pretest-bug mailing list emacs-pretest-bug@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug