Eli Zaretskii writes: >> From: Thomas Fitzsimmons >> Date: Mon, 14 Mar 2016 10:58:44 -0400 >> Cc: Stefan Monnier , emacs-devel@gnu.org >> >> My plan is to replicate that without the soap-client patch, and try to >> fix it a different way, in Debbugs. From that thread, I think this will >> show it: >> >> (async-get (async-start >> `(lambda () >> (load ,(locate-library "debbugs")) >> (debbugs-get-status 22285)))) >> >> I'll work on this hopefully this evening unless you beat me to it. > > Thanks. But it would be good to discuss what you think should be done > in debbugs.el, before you actually do that. The important part is to > figure out how can debbugs.el know whether a byte stream is a text > string. With the soap-client patch reverted, this debbugs.el patch fixes the above test case, producing a correct multibyte string for originator. This is just one example, obviously. The new function should be applied to all values returned by the Debbugs server that may contain multibyte UTF-8 characters. I'll leave this part to Michael. Also, there's still something not quite right about async, for strings that don't contain extended characters: (multibyte-string-p (cdr (assq 'severity (car (async-get (async-start `(lambda () (load ,(locate-library "debbugs")) (debbugs-get-status 22285)))))))) => nil (multibyte-string-p (cdr (assq 'severity (car (debbugs-get-status 22285))))) => t but this looks like a side effect of async. I'll wait to revert the soap-client patch on master and emacs-25 until Debbugs has a new release to fix this, to avoid temporarily re-breaking Debbugs. (However, I'd really like to get this done before Emacs 25.1 so that it doesn't go out with an incompatible soap-client API.) Thomas