Package: emacs;
Reported by: Alan Third <alan <at> idiocy.org>
Date: Sun, 17 Jan 2016 14:28:02 UTC
Severity: normal
Tags: patch
Found in version 25.0.50
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: tracker <at> debbugs.gnu.org Subject: bug#22392: closed (25.0.50; NS Emacs run from OS X GUI doesn't set locale) Date: Thu, 11 Feb 2016 02:38:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Wed, 10 Feb 2016 18:37:28 -0800 with message-id <56BBF3E8.7040904 <at> cs.ucla.edu> and subject line Re: bug#22392: Emacs OS X GUI doesn't set locale has caused the debbugs.gnu.org bug report #22392, regarding 25.0.50; NS Emacs run from OS X GUI doesn't set locale to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 22392: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22392 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Alan Third <alan <at> idiocy.org> To: bug-gnu-emacs <at> gnu.org Subject: 25.0.50; NS Emacs run from OS X GUI doesn't set locale Date: Sun, 17 Jan 2016 14:27:37 +0000[Message part 3 (text/plain, inline)]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 (text/plain, attachment)][Message part 5 (text/plain, inline)]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
[Message part 6 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Alan Third <alan <at> idiocy.org>, Anders Lindgren <andlind <at> gmail.com> Cc: 22392-done <at> debbugs.gnu.org Subject: Re: bug#22392: Emacs OS X GUI doesn't set locale Date: Wed, 10 Feb 2016 18:37:28 -0800On 02/10/2016 03:57 PM, Alan Third wrote: > I received confirmation of my copyright assignment today, so if > someone wants to apply the patch, that would be great. Thanks, I installed it into the emacs-25 branch. > Additionally, if it is applied the documentation should probably be > updated too. Thanks, I installed a doc update along the lines that you suggested.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.