emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: branch master segfault (2019-02-05)


From: Philippe Vaucher
Subject: Re: branch master segfault (2019-02-05)
Date: Sat, 9 Feb 2019 18:15:51 +0100

> address@hidden:~$ docker run -it --rm silex/emacs:master locale
> LANG=
> LANGUAGE=
(snip)

That's it: this is the "C" locale, without any codeset being declared
by any of these variables.

> Out of curiosity I might investigate why this happens, but maybe there lies some unharmful bug in emacs
> there that went unnoticed for long because `safe_terminal_coding` just works.

There's no bug, AFAICT.  When Emacs finds that the locale's codeset
doesn't do any encoding, it uses safe_terminal_coding.  The comments
near the code which was segfaulting say that much.
safe_terminal_coding is a coding-system that can handle any character
"safely".

Oh, okay.
 
> Is all the detection happening in `setup_coding_system`?

Which detection did you have in mind?  There's no detection inside
setup_coding_system, but to answer your question more fully, I'd like
to understand what exactly are you asking about.  If you are asking
about where does Emacs take the terminal encoding, then this is set up
according to the locale, see set-locale-environment.  If you want to
look into this, I'd start by figuring out why you have the POSIX
(a.k.a. "C") locale in the docker.

Well I thought `safe_terminal_coding` was the "plan B" locale, when "detection goes wrong", but you just enlightened me that it was normal behavior so there's nothing to fix here.

Docker containers don't make any assumptions so it makes sense that they use the "C" locale by default.

Okay, thank you for your help resolving this issue!

Kind regards,
Philippe

reply via email to

[Prev in Thread] Current Thread [Next in Thread]