emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ISO-8859-1 encoded file names and UTF-8


From: Kenichi Handa
Subject: Re: ISO-8859-1 encoded file names and UTF-8
Date: Thu, 20 Mar 2003 08:52:24 +0900 (JST)
User-agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/21.2.92 (sparc-sun-solaris2.6) MULE/5.0 (SAKAKI)

In article <address@hidden>, Karl Eichwalder <address@hidden> writes:
> I think there is still a subtle bug left; in a ISO-8859-1 locale do:

> touch "Maler Müller"

> Then call emacs:

> LANG=de_DE.UTF-8 emacs -q --no-site --no-splash .

> In dired you can see:

>   -rw-r--r--  1 ke  users   0 2003-03-19 16:10 Maler M\374ller\374rle
>                                      good part ^^^^^^^^^^^^^^^|||||||
>                               trailing garbage ------------>>>^^^^^^^

Ah!  That's a bug of utf-8 decoder.  I've just installed the
attached fix.

>>  Should the recoding of filename regarded as a kind of file name
>>  changing?  If so, perhaps we should make the function rename-file to
>>  handle also recoding.   In that case, how should we tell rename-file
>>  to actually recode filename encoding?

> If the user calls rename-file it should be up to him to specify a proper
> file name.  In other words I vote to provide a separate function like
> convert-file-name to do the right thing; by default convert-file-name
> should try to convert the file name to the user's locale.

As we already have the function convert-standard-filename, I
think the name convert-file-name is confusing.  So, I prefer
the name recode-file-name if we'll have a separate function.

---
Ken'ichi HANDA
address@hidden

*** utf-8.el.~1.26.~    Tue Mar 18 09:09:15 2003
--- utf-8.el    Thu Mar 20 08:22:42 2003
***************
*** 479,497 ****
                         (write-multibyte-character r5 r3))
                     (write-multibyte-character r6 r3))
                   (if (r0 >= #xf8)     ; 5- or 6-byte encoding
!                      ((read r1)
!                       (if (r1 < #xa0)
!                           (if (r1 < #x80) ; invalid byte
!                               (write r1)
!                             (write-multibyte-character r5 r1))
!                         (write-multibyte-character r6 r1))
                        (if (r0 >= #xfc) ; 6-byte
!                           ((read r1)
!                            (if (r1 < #xa0)
!                                (if (r1 < #x80) ; invalid byte
!                                    (write r1)
!                                  (write-multibyte-character r5 r1))
!                              (write-multibyte-character r6 r1)))))))
                ;; else invalid byte >= #xfe
                (write-multibyte-character r6 r0))))))
        (repeat)))
--- 479,499 ----
                         (write-multibyte-character r5 r3))
                     (write-multibyte-character r6 r3))
                   (if (r0 >= #xf8)     ; 5- or 6-byte encoding
!                      ((r0 = -1)
!                       (read r0)
!                       (if (r0 < #xa0)
!                           (if (r0 < #x80) ; invalid byte
!                               (write r0)
!                             (write-multibyte-character r5 r0))
!                         (write-multibyte-character r6 r0))
                        (if (r0 >= #xfc) ; 6-byte
!                           ((r0 = -1)
!                            (read r0)
!                            (if (r0 < #xa0)
!                                (if (r0 < #x80) ; invalid byte
!                                    (write r0)
!                                  (write-multibyte-character r5 r0))
!                              (write-multibyte-character r6 r0)))))))
                ;; else invalid byte >= #xfe
                (write-multibyte-character r6 r0))))))
        (repeat)))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]