* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system [not found] <E1VQKV4-0004YL-Qw@vcs.savannah.gnu.org> @ 2013-09-30 18:36 ` Stefan Monnier 2013-09-30 19:17 ` Jan Djärv 0 siblings, 1 reply; 13+ messages in thread From: Stefan Monnier @ 2013-09-30 18:36 UTC (permalink / raw) To: Jan D.; +Cc: emacs-devel > --- a/lisp/term/ns-win.el 2013-09-18 04:36:34 +0000 > +++ b/lisp/term/ns-win.el 2013-09-29 17:09:39 +0000 > @@ -912,6 +912,13 @@ > ;; FIXME: This will surely lead to "MODIFIED OUTSIDE CUSTOM" warnings. > (menu-bar-mode (if (get-lisp-resource nil "Menus") 1 -1)) > + ;; For NS nothing except UTF-8 makes sense. > + (add-hook 'before-init-hook > + #'(lambda () > + (setq locale-coding-system 'utf-8-unix) > + (setq default-process-coding-system > + '(utf-8-unix . utf-8-unix)))) > + > ;; OS X Lion introduces PressAndHold, which is unsupported by this port. > ;; See this thread for more details: > ;; http://lists.gnu.org/archive/html/emacs-devel/2011-06/msg00505.html Does this apply to any Darwin build and only to Darwin builds? What about tty-only Darwin builds? And what about GNUstep builds? Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-09-30 18:36 ` [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system Stefan Monnier @ 2013-09-30 19:17 ` Jan Djärv 2013-09-30 22:38 ` Stefan Monnier 0 siblings, 1 reply; 13+ messages in thread From: Jan Djärv @ 2013-09-30 19:17 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel@gnu.org Hello. 30 sep 2013 kl. 20:36 skrev Stefan Monnier <monnier@IRO.UMontreal.CA>: > > Does this apply to any Darwin build and only to Darwin builds? No. > What about tty-only Darwin builds? What about them? They can't be started from the Dock. > And what about GNUstep builds? Applies to them. Jan D. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-09-30 19:17 ` Jan Djärv @ 2013-09-30 22:38 ` Stefan Monnier 2013-10-01 18:28 ` Jan Djärv 0 siblings, 1 reply; 13+ messages in thread From: Stefan Monnier @ 2013-09-30 22:38 UTC (permalink / raw) To: Jan Djärv; +Cc: emacs-devel@gnu.org >> What about tty-only Darwin builds? > What about them? They can't be started from the Dock. But they should also use utf-8 for locale-coding-system and friends, regardless of LANG settings, IIUC. >> And what about GNUstep builds? > Applies to them. But should it? IIUC this "utf-8 everywhere" is a property of the OS (Darwin) not of the GUI/toolkit. So it should apply to tty-only uses under Darwin and it should not apply to GNUstep. Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-09-30 22:38 ` Stefan Monnier @ 2013-10-01 18:28 ` Jan Djärv 2013-10-02 0:43 ` Stefan Monnier 0 siblings, 1 reply; 13+ messages in thread From: Jan Djärv @ 2013-10-01 18:28 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel@gnu.org Hello. 1 okt 2013 kl. 00:38 skrev Stefan Monnier <monnier@iro.umontreal.ca>: >>> What about tty-only Darwin builds? >> What about them? They can't be started from the Dock. > > But they should also use utf-8 for locale-coding-system and friends, > regardless of LANG settings, IIUC. No they should not IMHO. As they must be started from a teminal, LANG is either correct or set to another value for some purpose. > >>> And what about GNUstep builds? >> Applies to them. > > But should it? > > IIUC this "utf-8 everywhere" is a property of the OS (Darwin) not of the > GUI/toolkit. So it should apply to tty-only uses under Darwin and it > should not apply to GNUstep. > Makes sense, fixed in trunk. Jan D. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-01 18:28 ` Jan Djärv @ 2013-10-02 0:43 ` Stefan Monnier 2013-10-02 3:12 ` Stephen J. Turnbull 2013-10-02 6:29 ` Jan Djärv 0 siblings, 2 replies; 13+ messages in thread From: Stefan Monnier @ 2013-10-02 0:43 UTC (permalink / raw) To: Jan Djärv; +Cc: emacs-devel@gnu.org > No they should not IMHO. As they must be started from a teminal, LANG is > either correct or set to another value for some purpose. IIUC the encoding used under Darwin for filenames is always utf-8. More to the point it uses NFD canonicalization, performed by the OS when needed; so pretending these are "byte sequences" that can use any encoding you feel like, as is the case in POSIX, is not an option. I guess it's OK to obey the user who wants to shot himself in the foot. But I do wonder: is LANG really always set in a terminal? IF so, why and by whom? Will LANG also be set properly if you use some other terminal than Terminal.app (e.g. let's say you run `emacs -nw' inside an Emacs.app started from the GUI)? >> IIUC this "utf-8 everywhere" is a property of the OS (Darwin) not of the >> GUI/toolkit. So it should apply to tty-only uses under Darwin and it >> should not apply to GNUstep. > Makes sense, fixed in trunk. Thanks, Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-02 0:43 ` Stefan Monnier @ 2013-10-02 3:12 ` Stephen J. Turnbull 2013-10-03 1:51 ` Stefan Monnier 2013-10-02 6:29 ` Jan Djärv 1 sibling, 1 reply; 13+ messages in thread From: Stephen J. Turnbull @ 2013-10-02 3:12 UTC (permalink / raw) To: Stefan Monnier; +Cc: Jan Djärv, emacs-devel@gnu.org Stefan Monnier writes: > IIUC the encoding used under Darwin for filenames is always utf-8. In practice, yes, in theory, no. *Darwin* is just a BSD *nix kernel (more precisely, FreeBSD kernel functions wrapped around a Mach microkernel), and at that level, they're just byte sequences. Mac OS X defaults to a file system which enforces UTF-8, that's all. But consider NFS mounts (whatever the remote system wants) and removable media (most often VFAT with some bogus Microsoft encoding). > More to the point it uses NFD canonicalization, performed by the OS > when needed; Sort of true, for values of "when needed" == "when the actual filesystem is HFS+". ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-02 3:12 ` Stephen J. Turnbull @ 2013-10-03 1:51 ` Stefan Monnier 2013-10-03 7:48 ` Andreas Schwab 0 siblings, 1 reply; 13+ messages in thread From: Stefan Monnier @ 2013-10-03 1:51 UTC (permalink / raw) To: Stephen J. Turnbull; +Cc: Jan Djärv, emacs-devel@gnu.org >> IIUC the encoding used under Darwin for filenames is always utf-8. > In practice, yes, in theory, no. *Darwin* is just a BSD *nix kernel > (more precisely, FreeBSD kernel functions wrapped around a Mach > microkernel), and at that level, they're just byte sequences. Mac OS > X defaults to a file system which enforces UTF-8, that's all. But > consider NFS mounts (whatever the remote system wants) and removable > media (most often VFAT with some bogus Microsoft encoding). Good to know, thanks. I had the impression that the utf-8 coding was imposed at the API level rather than the filesystem level. Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-03 1:51 ` Stefan Monnier @ 2013-10-03 7:48 ` Andreas Schwab 2013-10-03 9:42 ` Stephen J. Turnbull 2013-10-03 14:39 ` Stefan Monnier 0 siblings, 2 replies; 13+ messages in thread From: Andreas Schwab @ 2013-10-03 7:48 UTC (permalink / raw) To: Stefan Monnier; +Cc: Stephen J. Turnbull, Jan Djärv, emacs-devel@gnu.org Stefan Monnier <monnier@iro.umontreal.ca> writes: > Good to know, thanks. I had the impression that the utf-8 coding was > imposed at the API level rather than the filesystem level. The HFS+ filesystem actually uses UTF-16. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-03 7:48 ` Andreas Schwab @ 2013-10-03 9:42 ` Stephen J. Turnbull 2013-10-03 14:39 ` Stefan Monnier 1 sibling, 0 replies; 13+ messages in thread From: Stephen J. Turnbull @ 2013-10-03 9:42 UTC (permalink / raw) To: Andreas Schwab; +Cc: Jan Djärv, Stefan Monnier, emacs-devel@gnu.org Andreas Schwab writes: > Stefan Monnier <monnier@iro.umontreal.ca> writes: > > > Good to know, thanks. I had the impression that the utf-8 coding was > > imposed at the API level rather than the filesystem level. > > The HFS+ filesystem actually uses UTF-16. Sure, but the kernel VFS functions expect Unicode in UTF-8 format, and output NFD. I think that's what's relevant here, rather than what happens inside the HFS+ drivers and on the hardware. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-03 7:48 ` Andreas Schwab 2013-10-03 9:42 ` Stephen J. Turnbull @ 2013-10-03 14:39 ` Stefan Monnier 1 sibling, 0 replies; 13+ messages in thread From: Stefan Monnier @ 2013-10-03 14:39 UTC (permalink / raw) To: Andreas Schwab; +Cc: Stephen J. Turnbull, Jan Djärv, emacs-devel@gnu.org >> Good to know, thanks. I had the impression that the utf-8 coding was >> imposed at the API level rather than the filesystem level. > The HFS+ filesystem actually uses UTF-16. So, IIUC this UTF-16 is only used "on disk" but is converted to UTF-8 in the hfsplus driver so the rest of the kernel sees UTF-8 coming from HFS+ partitions. Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-02 0:43 ` Stefan Monnier 2013-10-02 3:12 ` Stephen J. Turnbull @ 2013-10-02 6:29 ` Jan Djärv 2013-10-03 1:53 ` Stefan Monnier 1 sibling, 1 reply; 13+ messages in thread From: Jan Djärv @ 2013-10-02 6:29 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel@gnu.org Hello. 2 okt 2013 kl. 02:43 skrev Stefan Monnier <monnier@iro.umontreal.ca>: >> No they should not IMHO. As they must be started from a teminal, LANG is >> either correct or set to another value for some purpose. > > IIUC the encoding used under Darwin for filenames is always utf-8. > More to the point it uses NFD canonicalization, performed by the OS when > needed; so pretending these are "byte sequences" that can use any > encoding you feel like, as is the case in POSIX, is not an option. As pointed out, how about remote mounts? I don't know. > > I guess it's OK to obey the user who wants to shot himself in the foot. > But I do wonder: is LANG really always set in a terminal? IF so, why > and by whom? Will LANG also be set properly if you use some other > terminal than Terminal.app (e.g. let's say you run `emacs -nw' inside > an Emacs.app started from the GUI)? It is Terminal.app that sets it based on system settings for language. For other emulators, I don't know. I don't know of any other emulators BTW. For emacs -nw inside emacs started from GUI, LANG will not be set. But that goes for many X11 setups as well. If LANG is set in /etc/profile or ~/.profile, it won't be set if you start Emacs from a panel and the parent session manager has not LANG set. Jan D. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-02 6:29 ` Jan Djärv @ 2013-10-03 1:53 ` Stefan Monnier 2013-10-03 17:18 ` Jan Djärv 0 siblings, 1 reply; 13+ messages in thread From: Stefan Monnier @ 2013-10-03 1:53 UTC (permalink / raw) To: Jan Djärv; +Cc: emacs-devel@gnu.org > But that goes for many X11 setups as well. If LANG is set in /etc/profile or > ~/.profile, it won't be set if you start Emacs from a panel and the parent > session manager has not LANG set. So maybe the better solution is to default to utf-8 if/when LANG is not set, rather than try to distinguish the GUI-vs-tty case. Stefan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system 2013-10-03 1:53 ` Stefan Monnier @ 2013-10-03 17:18 ` Jan Djärv 0 siblings, 0 replies; 13+ messages in thread From: Jan Djärv @ 2013-10-03 17:18 UTC (permalink / raw) To: Stefan Monnier; +Cc: emacs-devel@gnu.org Hi. 3 okt 2013 kl. 03:53 skrev Stefan Monnier <monnier@iro.umontreal.ca>: >> But that goes for many X11 setups as well. If LANG is set in /etc/profile or >> ~/.profile, it won't be set if you start Emacs from a panel and the parent >> session manager has not LANG set. > > So maybe the better solution is to default to utf-8 if/when LANG is not set, > rather than try to distinguish the GUI-vs-tty case. > ... and LC_ALL and LC_CTYPE. I think it is too much effort for practcally no benefit. Jan D. ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2013-10-03 17:18 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <E1VQKV4-0004YL-Qw@vcs.savannah.gnu.org> 2013-09-30 18:36 ` [Emacs-diffs] trunk r114483: * term/ns-win.el (ns-initialize-window-system): Set locale-coding-system Stefan Monnier 2013-09-30 19:17 ` Jan Djärv 2013-09-30 22:38 ` Stefan Monnier 2013-10-01 18:28 ` Jan Djärv 2013-10-02 0:43 ` Stefan Monnier 2013-10-02 3:12 ` Stephen J. Turnbull 2013-10-03 1:51 ` Stefan Monnier 2013-10-03 7:48 ` Andreas Schwab 2013-10-03 9:42 ` Stephen J. Turnbull 2013-10-03 14:39 ` Stefan Monnier 2013-10-02 6:29 ` Jan Djärv 2013-10-03 1:53 ` Stefan Monnier 2013-10-03 17:18 ` Jan Djärv
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).