diff lisp/international/mule-cmds.el @ 59906:9c28fead9bf2

(set-locale-environment): Set file-name coding system to utf-8 on Darwin. (set-default-coding-systems): Don't set default-file-name-coding-system on Darwin systems.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 03 Feb 2005 16:06:34 +0000
parents baaed9bd0e12
children 04686828d0da 86457de2420c 72cf6261961e
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el	Thu Feb 03 16:04:50 2005 +0000
+++ b/lisp/international/mule-cmds.el	Thu Feb 03 16:06:34 2005 +0000
@@ -327,7 +327,8 @@
 	(or (local-variable-p 'buffer-file-coding-system buffer)
 	    (ucs-set-table-for-input buffer))))
 
-  (if default-enable-multibyte-characters
+  (if (and default-enable-multibyte-characters (not (eq system-type 'darwin)))
+      ;; The file-name coding system on Darwin systems is always utf-8.
       (setq default-file-name-coding-system coding-system))
   ;; If coding-system is nil, honor that on MS-DOS as well, so
   ;; that they could reset the terminal coding system.
@@ -1694,6 +1695,8 @@
 
   (set-default-coding-systems nil)
   (setq default-sendmail-coding-system 'iso-latin-1)
+  ;; On Darwin systems, this should be utf-8, but when this file is loaded
+  ;; utf-8 is not yet defined, so we set it in set-locale-environment instead.
   (setq default-file-name-coding-system 'iso-latin-1)
   ;; Preserve eol-type from existing default-process-coding-systems.
   ;; On non-unix-like systems in particular, these may have been set
@@ -2428,6 +2431,10 @@
 	  (set-keyboard-coding-system code-page-coding)
 	  (set-terminal-coding-system code-page-coding))))
 
+    ;; On Darwin, file names are always encoded in utf-8, no matter the locale.
+    (when (eq system-type 'darwin)
+      (setq default-file-name-coding-system 'utf-8))
+
     ;; Default to A4 paper if we're not in a C, POSIX or US locale.
     ;; (See comments in Flocale_info.)
     (let ((locale locale)