[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22392: 25.0.50; NS Emacs run from OS X GUI doesn't set locale
From: |
Alan Third |
Subject: |
bug#22392: 25.0.50; NS Emacs run from OS X GUI doesn't set locale |
Date: |
Sun, 17 Jan 2016 14:27:37 +0000 |
When Emacs is run from the OS X GUI (the dock, spotlight, finder, etc.)
in OS X it doesn't set the locale correctly.
Here's the output of C-h C RET on my machine with no user configuration:
Coding system for saving this buffer:
Not set locally, use the default.
Default coding system (for new files):
nil
Coding system for keyboard input:
= -- no-conversion (alias: binary)
Coding system for terminal output:
nil
Coding system for inter-client cut and paste:
nil
Defaults for subprocess I/O:
decoding: U -- utf-8-unix (alias: mule-utf-8-unix)
encoding: U -- utf-8-unix (alias: mule-utf-8-unix)
Priority order for recognizing coding systems when reading files:
1. utf-8 (alias: mule-utf-8)
2. iso-2022-7bit
3. iso-latin-1 (alias: iso-8859-1 latin-1)
4. iso-2022-7bit-lock (alias: iso-2022-int-1)
5. iso-2022-8bit-ss2
I've snipped off the rest, if you want it I can provide it.
Emacs relies on LC_ALL, LC_CTYPE or LANG being set, and OS X's terminal
application sets the LANG environment variable. OS X doesn't set any of
these variables when the application is run from the GUI.
Additionally, Emacs detects when it's being run from the OS X terminal
(mule-cmds.el line 2722) and hard-codes some settings.
The Windows version of Emacs has a similar problem and solves this by
running an "init_environment" function from main in emacs.c that uses
the Windows APIs to set the LANG variable. (as described at
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3221#32)
I've written a patch that copies this functionality but for NextStep.
c-h C RET gives:
Coding system for saving this buffer:
Not set locally, use the default.
Default coding system (for new files):
1 -- iso-latin-1-unix (alias: iso-8859-1-unix latin-1-unix)
Coding system for keyboard input:
1 -- iso-latin-1-unix (alias: iso-8859-1-unix latin-1-unix)
Coding system for terminal output:
1 -- iso-latin-1-unix (alias: iso-8859-1-unix latin-1-unix)
Coding system for inter-client cut and paste:
nil
Defaults for subprocess I/O:
decoding: U -- utf-8-unix (alias: mule-utf-8-unix)
encoding: U -- utf-8-unix (alias: mule-utf-8-unix)
Priority order for recognizing coding systems when reading files:
1. iso-latin-1 (alias: iso-8859-1 latin-1)
2. utf-8 (alias: mule-utf-8)
3. iso-2022-7bit
4. iso-2022-7bit-lock (alias: iso-2022-int-1)
5. iso-2022-8bit-ss2
Which looks better to me. It also gives me A4 paper instead of legal and
ispell/hunspell is better behaved.
0001-Set-locale-when-run-from-OS-X-GUI.patch
Description: NS environment patch
In GNU Emacs 25.0.50.1 (x86_64-apple-darwin15.2.0, NS appkit-1404.34 Version
10.11.2 (Build 15C50))
of 2016-01-16 built on galloway.idiocy.org
Repository revision: a0d5b7ae3bb014bb0b1c205d123c597df0e76411
Windowing system distributor 'Apple', version 10.3.1404
Configured features:
JPEG IMAGEMAGICK ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS
Important settings:
locale-coding-system: utf-8
Major mode: Text
Minor modes in effect:
global-flycheck-mode: t
flycheck-mode: t
show-paren-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
.emacs.d/elpa/seq-20151028.759/seq.el: Pattern t is deprecated. Use `_'
instead [4 times]
For information about GNU Emacs and the GNU system, type C-h C-a.
Quit
Making completion list...
Quit
Making completion list...
Load-path shadows:
/Users/alan/.emacs.d/elpa/magit-20160116.333/magit-popup hides
/Users/alan/.emacs.d/elpa/magit-popup-20160107.437/magit-popup
/Users/alan/.emacs.d/elpa/org-20160111/ox hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox
/Users/alan/.emacs.d/elpa/org-20160111/ox-texinfo hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-texinfo
/Users/alan/.emacs.d/elpa/org-20160111/ox-publish hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-publish
/Users/alan/.emacs.d/elpa/org-20160111/ox-org hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-org
/Users/alan/.emacs.d/elpa/org-20160111/ox-odt hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-odt
/Users/alan/.emacs.d/elpa/org-20160111/ox-md hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-md
/Users/alan/.emacs.d/elpa/org-20160111/ox-man hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-man
/Users/alan/.emacs.d/elpa/org-20160111/ox-latex hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-latex
/Users/alan/.emacs.d/elpa/org-20160111/ox-icalendar hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-icalendar
/Users/alan/.emacs.d/elpa/org-20160111/ox-html hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-html
/Users/alan/.emacs.d/elpa/org-20160111/ox-beamer hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-beamer
/Users/alan/.emacs.d/elpa/org-20160111/ox-ascii hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ox-ascii
/Users/alan/.emacs.d/elpa/org-20160111/org hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org
/Users/alan/.emacs.d/elpa/org-20160111/org-w3m hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-w3m
/Users/alan/.emacs.d/elpa/org-20160111/org-version hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-version
/Users/alan/.emacs.d/elpa/org-20160111/org-timer hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-timer
/Users/alan/.emacs.d/elpa/org-20160111/org-table hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-table
/Users/alan/.emacs.d/elpa/org-20160111/org-src hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-src
/Users/alan/.emacs.d/elpa/org-20160111/org-rmail hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-rmail
/Users/alan/.emacs.d/elpa/org-20160111/org-protocol hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol
/Users/alan/.emacs.d/elpa/org-20160111/org-plot hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-plot
/Users/alan/.emacs.d/elpa/org-20160111/org-pcomplete hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
/Users/alan/.emacs.d/elpa/org-20160111/org-mouse hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse
/Users/alan/.emacs.d/elpa/org-20160111/org-mobile hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile
/Users/alan/.emacs.d/elpa/org-20160111/org-mhe hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-mhe
/Users/alan/.emacs.d/elpa/org-20160111/org-macs hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-macs
/Users/alan/.emacs.d/elpa/org-20160111/org-macro hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-macro
/Users/alan/.emacs.d/elpa/org-20160111/org-loaddefs hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-loaddefs
/Users/alan/.emacs.d/elpa/org-20160111/org-list hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-list
/Users/alan/.emacs.d/elpa/org-20160111/org-irc hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-irc
/Users/alan/.emacs.d/elpa/org-20160111/org-install hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-install
/Users/alan/.emacs.d/elpa/org-20160111/org-inlinetask hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
/Users/alan/.emacs.d/elpa/org-20160111/org-info hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-info
/Users/alan/.emacs.d/elpa/org-20160111/org-indent hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-indent
/Users/alan/.emacs.d/elpa/org-20160111/org-id hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-id
/Users/alan/.emacs.d/elpa/org-20160111/org-habit hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-habit
/Users/alan/.emacs.d/elpa/org-20160111/org-gnus hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-gnus
/Users/alan/.emacs.d/elpa/org-20160111/org-footnote hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote
/Users/alan/.emacs.d/elpa/org-20160111/org-feed hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-feed
/Users/alan/.emacs.d/elpa/org-20160111/org-faces hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-faces
/Users/alan/.emacs.d/elpa/org-20160111/org-eshell hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-eshell
/Users/alan/.emacs.d/elpa/org-20160111/org-entities hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-entities
/Users/alan/.emacs.d/elpa/org-20160111/org-element hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-element
/Users/alan/.emacs.d/elpa/org-20160111/org-docview hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-docview
/Users/alan/.emacs.d/elpa/org-20160111/org-datetree hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree
/Users/alan/.emacs.d/elpa/org-20160111/org-ctags hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-ctags
/Users/alan/.emacs.d/elpa/org-20160111/org-crypt hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt
/Users/alan/.emacs.d/elpa/org-20160111/org-compat hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-compat
/Users/alan/.emacs.d/elpa/org-20160111/org-colview hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-colview
/Users/alan/.emacs.d/elpa/org-20160111/org-clock hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-clock
/Users/alan/.emacs.d/elpa/org-20160111/org-capture hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-capture
/Users/alan/.emacs.d/elpa/org-20160111/org-bibtex hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-bibtex
/Users/alan/.emacs.d/elpa/org-20160111/org-bbdb hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-bbdb
/Users/alan/.emacs.d/elpa/org-20160111/org-attach hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-attach
/Users/alan/.emacs.d/elpa/org-20160111/org-archive hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-archive
/Users/alan/.emacs.d/elpa/org-20160111/org-agenda hides
/Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda
/Users/alan/.emacs.d/elpa/org-20160111/ob hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob
/Users/alan/.emacs.d/elpa/org-20160111/ob-tangle hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-tangle
/Users/alan/.emacs.d/elpa/org-20160111/ob-table hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-table
/Users/alan/.emacs.d/elpa/org-20160111/ob-sqlite hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
/Users/alan/.emacs.d/elpa/org-20160111/ob-sql hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-sql
/Users/alan/.emacs.d/elpa/org-20160111/ob-shen hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-shen
/Users/alan/.emacs.d/elpa/org-20160111/ob-screen hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-screen
/Users/alan/.emacs.d/elpa/org-20160111/ob-scheme hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-scheme
/Users/alan/.emacs.d/elpa/org-20160111/ob-scala hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-scala
/Users/alan/.emacs.d/elpa/org-20160111/ob-sass hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-sass
/Users/alan/.emacs.d/elpa/org-20160111/ob-ruby hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ruby
/Users/alan/.emacs.d/elpa/org-20160111/ob-ref hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ref
/Users/alan/.emacs.d/elpa/org-20160111/ob-R hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-R
/Users/alan/.emacs.d/elpa/org-20160111/ob-python hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-python
/Users/alan/.emacs.d/elpa/org-20160111/ob-plantuml hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
/Users/alan/.emacs.d/elpa/org-20160111/ob-picolisp hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-picolisp
/Users/alan/.emacs.d/elpa/org-20160111/ob-perl hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-perl
/Users/alan/.emacs.d/elpa/org-20160111/ob-org hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-org
/Users/alan/.emacs.d/elpa/org-20160111/ob-octave hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-octave
/Users/alan/.emacs.d/elpa/org-20160111/ob-ocaml hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
/Users/alan/.emacs.d/elpa/org-20160111/ob-mscgen hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-mscgen
/Users/alan/.emacs.d/elpa/org-20160111/ob-maxima hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-maxima
/Users/alan/.emacs.d/elpa/org-20160111/ob-matlab hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-matlab
/Users/alan/.emacs.d/elpa/org-20160111/ob-makefile hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-makefile
/Users/alan/.emacs.d/elpa/org-20160111/ob-lob hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-lob
/Users/alan/.emacs.d/elpa/org-20160111/ob-lisp hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-lisp
/Users/alan/.emacs.d/elpa/org-20160111/ob-lilypond hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
/Users/alan/.emacs.d/elpa/org-20160111/ob-ledger hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ledger
/Users/alan/.emacs.d/elpa/org-20160111/ob-latex hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-latex
/Users/alan/.emacs.d/elpa/org-20160111/ob-keys hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-keys
/Users/alan/.emacs.d/elpa/org-20160111/ob-js hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-js
/Users/alan/.emacs.d/elpa/org-20160111/ob-java hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-java
/Users/alan/.emacs.d/elpa/org-20160111/ob-io hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-io
/Users/alan/.emacs.d/elpa/org-20160111/ob-haskell hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-haskell
/Users/alan/.emacs.d/elpa/org-20160111/ob-gnuplot hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
/Users/alan/.emacs.d/elpa/org-20160111/ob-fortran hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-fortran
/Users/alan/.emacs.d/elpa/org-20160111/ob-exp hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-exp
/Users/alan/.emacs.d/elpa/org-20160111/ob-eval hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-eval
/Users/alan/.emacs.d/elpa/org-20160111/ob-emacs-lisp hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
/Users/alan/.emacs.d/elpa/org-20160111/ob-dot hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-dot
/Users/alan/.emacs.d/elpa/org-20160111/ob-ditaa hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
/Users/alan/.emacs.d/elpa/org-20160111/ob-css hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-css
/Users/alan/.emacs.d/elpa/org-20160111/ob-core hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-core
/Users/alan/.emacs.d/elpa/org-20160111/ob-comint hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-comint
/Users/alan/.emacs.d/elpa/org-20160111/ob-clojure hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-clojure
/Users/alan/.emacs.d/elpa/org-20160111/ob-calc hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-calc
/Users/alan/.emacs.d/elpa/org-20160111/ob-C hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-C
/Users/alan/.emacs.d/elpa/org-20160111/ob-awk hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-awk
/Users/alan/.emacs.d/elpa/org-20160111/ob-asymptote hides
/Applications/Emacs.app/Contents/Resources/lisp/org/ob-asymptote
/Users/alan/.emacs.d/elpa/seq-20151028.759/seq hides
/Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/seq
Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec epg gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils paredit flycheck find-func
help-mode rx subr-x seq gv dash exec-path-from-shell finder-inf
autoinsert csv-mode-autoloads gnuplot-autoloads go-mode-autoloads
paredit-autoloads quack-autoloads queue-autoloads typopunct-autoloads
info package epg-config wombat-theme cl-seq unichar easy-mmode
powershell-mode derived compile comint ansi-color ring speedbar sb-image
ezimage dframe easymenu edmacro kmacro cl-loaddefs pcase cl-lib windmove
paren server time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel ns-win ucs-normalize
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
cocoa ns multi-tty make-network-process emacs)
Memory information:
((conses 16 292894 11471)
(symbols 48 27242 0)
(miscs 40 65 228)
(strings 32 44073 8751)
(string-bytes 1 1326190)
(vectors 16 43065)
(vector-slots 8 757477 4748)
(floats 8 188 150)
(intervals 56 211 79)
(buffers 976 14))
--
Alan Third
- bug#22392: 25.0.50; NS Emacs run from OS X GUI doesn't set locale,
Alan Third <=
bug#22392: Emacs OS X GUI doesn't set locale, Random832, 2016/01/30