Subject: bug#4157: Re: bug#4157: 23.1.50; faulty character characterisation for ä

From: Kenichi Handa <[email-masked]>
Date: Wed, 19 Aug 2009 09:23:26 +0900

In article <[email-masked]>, Peter Dyballa <[email-masked]> writes:

> > Please show the value of default-file-name-coding-system and
> > file-name-coding-system.
> >

> I (seem to) see: it's utf-8 for the first and nil for the second  
> variable (the same as globally). So the string M\344r, coming from  
> some ls which follows LC_CTYPE or LANG, is interpreted as being UTF-8  
> which it of course isn't...

Ah, I found this code in mule-cmds.el.

  (if (eq system-type 'darwin)
      ;; The file-name coding system on Darwin systems is always utf-8.
      (setq default-file-name-coding-system 'utf-8)

I don't remember why that code exists.  If the comment is
wrong (i.e. there's no need of treating darwin specially
here), the attached patch should solve the problem.  Please
try it.

---
Kenichi Handa
[email-masked]

--- mule-cmds.el.~1.364.~	2009-08-13 20:59:18.000000000 +0900
+++ mule-cmds.el	2009-08-19 09:21:33.000000000 +0900
@@ -355,13 +355,10 @@
 	(or (local-variable-p 'buffer-file-coding-system buffer)
 	    (ucs-set-table-for-input buffer))))
 
-  (if (eq system-type 'darwin)
-      ;; The file-name coding system on Darwin systems is always utf-8.
-      (setq default-file-name-coding-system 'utf-8)
-    (if (and default-enable-multibyte-characters
-	     (or (not coding-system)
-		 (coding-system-get coding-system 'ascii-compatible-p)))
-	(setq default-file-name-coding-system coding-system)))
+  (if (and default-enable-multibyte-characters
+	   (or (not coding-system)
+	       (coding-system-get coding-system 'ascii-compatible-p)))
+      (setq default-file-name-coding-system coding-system))
   (setq default-terminal-coding-system coding-system)
   (setq default-keyboard-coding-system coding-system)
   ;; Preserve eol-type from existing default-process-coding-systems.