Subject: bug#27505: acknowledged by developer (Re: bug#27505: LC_CTYPE affects tutorial language)

From: Eli Zaretskii <[email-masked]>
Date: Sat, 05 Aug 2017 12:17:58 +0300

> Cc: [email-masked]
> From: Leonard Lausen <[email-masked]>
> Date: Sat, 5 Aug 2017 17:17:47 +0900
> 
> I would be more than happy to not set LC_CTYPE to Chinese, if #10867
> gets fixed. Until then it seems the only way to get XIM working. If I
> remember correctly though, #10867 is intended behavior and won't be
> fixed (which is not sensible IMO).
> 
> My problem is, that just because I would like to use XIM doesn't mean
> that I would like to see any of the emacs interface in the LC_CTYPE
> language. So given that #10867 seems to be intended behavior at least
> emacs shouldn't rely on LC_CTYPE to change the
> interface language in any user-visible way. From my perspective it would
> make more sense to fix #10867 though.

I don't see any experts we have who could fix that, unfortunately.

But I don't see why that would be a problem for you: if you don't want
that Emacs language environment be Chinese when you use XIM, you
should be able to invoke set-language-environment inside Emacs after
starting it, to set the language environment to something other than
Chinese.  Does that work for you?

> As far as I understand the current behavior of emacs to change the
> interface language based on LC_CTYPE is application defined behavior
> that is not part of Posix. Posix only says:
> 
> > This variable determines the locale category for character handling
> > functions, such as tolower(), toupper() and isalpha(). This
> > environment variable determines the interpretation of sequences of
> > bytes of text data as characters (for example, single- as opposed to
> > multi-byte characters), the classification of characters (for
> > example, alpha, digit, graph) and the behaviour of character classes.
> > Additional semantics of this variable, if any, are
> > implementation-dependent.

See the "interpretation of sequences of bytes of text data as
characters" parts: that's what causes Emacs to use LC_CTYPE to setup
the language environment.  So we do follow Posix, AFAIU.