unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Jan D." <jan.h.d@swipnet.se>
Cc: emacs-devel@gnu.org
Subject: Re: Strange behaviour with dired and UTF8
Date: Fri, 2 May 2003 10:16:52 +0200	[thread overview]
Message-ID: <6DDE98F0-7C76-11D7-8080-00039363E640@swipnet.se> (raw)
In-Reply-To: <200305010652.PAA14919@etlken.m17n.org>

> In article <200304241235.h3OCZdbL023178@stubby.bodenonline.com>, "Jan 
> D." <jan.h.d@swipnet.se> writes:
>> Maybe I am doing this wrong, but here is what I try to do.
>> My language environment is ISO-8859-1.
>> I have a directory that contains files with file names in UTF-8.
>> I start dired on that directory.  I want to see the UTF-8 characters
>> so I do C-x RET r utf-8.  File names display OK now.
>
>> But when trying to operate on a file, say opening it, I get
>> "File no longer exists; type `g' to update Dired buffer"
>> It seems that dired does not keep the original file name around, but
>> tries to open with the display name representation of the file name.
>
>> When I type g, I loose the UTF-8 coding and files are now displayed
>> as ISO-8859-1 again.  Setting buffer coding to UTF-8 does not help.
>
>> Do I have to set file-name-coding-system to UTF-8?  This solves the
>> problem, but my file-name-coding-system is really ISO-8859-1, it is
>> just this one directory that is UTF-8.
>
> The current Emacs doesn't have a facility to cope with such
> a situation well.
>
> How about this?
>
> (1) Make a customizable variable
>     file-name-coding-system-alist; the format is the same as
>     file-coding-system-alist.
>
> (2) Make the macro ENCODE_FILE and DECODE_FILE to check that
>     variable before using file-name-coding-system and
>     default-file-name-coding-system.
>
> (3) Enhance the function dired-revert to update
>     file-name-coding-system-alist automatically if it is
>     called with coding-system-for-read being bound to
>     non-nil.  In that case, it may also have to ask a user
>     to save that modification for the future session (via
>     customize).
>
> What do people think?  Aren't there any better idea?

This sounds very complicated.  As I understand it, dired first gets
the file name from ls (original representation), then converts that to
whatever encoding it shall use to show it in the buffer (view
representation).  When dired operates on the file (opening for example),
it converts back from the view representation, hoping to get the
original representation.  But this may fail, since conversion
from view back to original is not one-to-one.

This work (original representation -> view representation -> original
representation) should not be needed, IMHO.  Why just not keep the
original representation around (some kind of text property on the file
name?) and always use that when operating on the file?  That change 
would
be transparent to users.

I do not know how dired works, but I think a separation of original
representation and view representation would make it easier for
dired to use any encoding to view the files.

	Jan D.

  parent reply	other threads:[~2003-05-02  8:16 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-24 11:43 Strange behaviour with dired and UTF8 Jan D.
2003-04-25 13:20 ` Kai Großjohann
2003-05-01  6:52 ` Kenichi Handa
2003-05-02  6:41   ` Kai Großjohann
2003-05-02  8:16   ` Jan D. [this message]
2003-05-02  8:56     ` Kenichi Handa
2003-05-02  9:59       ` Jan D.
2003-05-02 11:22         ` Kenichi Handa
2003-05-02 12:44           ` Jan D.
2003-05-03 15:03             ` Richard Stallman
2003-05-03 18:04               ` Jan D.
2003-05-05 14:32                 ` Richard Stallman
2003-05-07 15:51                   ` Jan D.
2003-05-07 16:09                     ` Stefan Monnier
2003-05-09 11:19                       ` Richard Stallman
2003-05-03 15:59             ` Stephen J. Turnbull
2003-05-03 17:59               ` Jan D.
2003-05-05  9:20             ` Kenichi Handa
2003-05-06 18:05               ` Jan D.
2003-05-07  1:08                 ` Kenichi Handa
2003-05-07 15:43                   ` Jan D.
2003-05-03 15:03       ` Richard Stallman
2003-05-03 18:11         ` Jan D.
2003-05-06  5:39         ` Kenichi Handa
2003-05-06 14:41           ` Richard Stallman
2003-05-07 15:49           ` Jan D.
2003-05-07 16:31             ` Stefan Monnier
2003-05-07 17:40               ` Jan D.

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6DDE98F0-7C76-11D7-8080-00039363E640@swipnet.se \
    --to=jan.h.d@swipnet.se \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).