diff lisp/international/mule-cmds.el @ 60934:439d4fa30f21

(set-locale-environment): For Mac OS X's Terminal.app, use utf-8. (set-display-table-and-terminal-coding-system): Add coding-system arg. (set-locale-environment): Use it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 25 Mar 2005 15:41:42 +0000
parents 10307e6c7baa
children a0bf3de65b02 2006100ee57e
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el	Fri Mar 25 15:33:22 2005 +0000
+++ b/lisp/international/mule-cmds.el	Fri Mar 25 15:41:42 2005 +0000
@@ -1734,7 +1734,7 @@
 
 (reset-language-environment)
 
-(defun set-display-table-and-terminal-coding-system (language-name)
+(defun set-display-table-and-terminal-coding-system (language-name &optional coding-system)
   "Set up the display table and terminal coding system for LANGUAGE-NAME."
   (let ((coding (get-language-info language-name 'unibyte-display)))
     (if coding
@@ -1748,7 +1748,7 @@
 	(dotimes (i 128)
 	  (aset standard-display-table (+ i 128) nil))))
     (or (eq window-system 'pc)
-	(set-terminal-coding-system coding))))
+	(set-terminal-coding-system (or coding-system coding)))))
 
 (defun set-language-environment (language-name)
   "Set up multi-lingual environment for using LANGUAGE-NAME.
@@ -2446,7 +2446,8 @@
 	  ;; we are using single-byte characters,
 	  ;; so the display table and terminal coding system are irrelevant.
 	  (when default-enable-multibyte-characters
-	    (set-display-table-and-terminal-coding-system language-name))
+	    (set-display-table-and-terminal-coding-system
+	     language-name coding-system))
 
 	  ;; Set the `keyboard-coding-system' if appropriate (tty
 	  ;; only).  At least X and MS Windows can generate
@@ -2476,9 +2477,16 @@
 	  (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))
+      ;; On Darwin, file names are always encoded in utf-8, no matter
+      ;; the locale.
+      (setq default-file-name-coding-system 'utf-8)
+      ;; Mac OS X's Terminal.app by default uses utf-8 regardless of
+      ;; the locale.
+      (when (and (null window-system)
+		 (equal (getenv "TERM_PROGRAM") "Apple_Terminal"))
+	(set-terminal-coding-system 'utf-8)
+	(set-keyboard-coding-system 'utf-8)))
 
     ;; Default to A4 paper if we're not in a C, POSIX or US locale.
     ;; (See comments in Flocale_info.)