all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: kzhr@d1.dion.ne.jp, michael.albinus@gmx.de, emacs-devel@gnu.org
Subject: Re: Multibyte and unibyte file names
Date: Sat, 26 Jan 2013 12:54:20 +0200	[thread overview]
Message-ID: <83r4l8jjtv.fsf@gnu.org> (raw)
In-Reply-To: <jwv8v7gsy3i.fsf-monnier+emacs@gnu.org>

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org,  kzhr@d1.dion.ne.jp,  michael.albinus@gmx.de
> Date: Fri, 25 Jan 2013 17:28:40 -0500
> 
> > What I meant was to return decoded file names from all file-name
> > primitives, such as file-name-nondirectory, even if their input was
> > encoded.
> 
> It's probably OK to do that, but I wonder why we'd need to do it

It's not a goal in itself, it's a side effect: if every primitive
decodes any encoded file name on entry, it will thereafter manipulate
decoded strings throughout its execution, and will therefore return a
decoded string.  (We could, of course, encode it back if we found the
argument encoded, but then it isn't exactly clear what to do when some
arguments are encoded, the others aren't; and if some of them are
pure-ASCII, they are not easily distinguished from encoded file names.)

> under what circumstances could such a primitive receive an encoded
> file-name, if all the file names returned to Elisp (by things like
> directory-files) are already decoded?

One way is that a primitive gets called from C.  I gave one example of
this in my original message.  There aren't many of such examples, but
if we _want_ to support encoded file names, the code needs to DTRT
with them, even if this happens only once in a blue moon.

> > The issue is in the file-name primitives that want to support both
> > encoded and decoded file names, and as I understand from this
> > discussion, this feature should stay.
> 
> Of course, we shouldn't just reject encoded filenames, but I don't see
> why we should worry too much about them.

I "worry" because they need separate code, especially with multibyte
encodings; writing that code for an encoding not supported by the
current locale is tricky at best, if not downright impossible, and
certainly inefficient.  Are you saying that since this happens
infrequently, we could process such file names in a broken way,
e.g. finding a directory separator where there's none, as demonstrated
in http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13515#5?

> > So some things will never work with encoded file names, but I guess no
> > one cares, because most of those problems go away if the encoding is
> > UTF-8.  Fine; if no one cares, neither do I.
> 
> Actually, even with other coding systems, this shouldn't be a serious
> issue since encoded file names should be rare.

The code needs to be there anyway.  We cannot remove it, and we cannot
break it, because people will complain.



  reply	other threads:[~2013-01-26 10:54 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-23 17:45 Multibyte and unibyte file names Eli Zaretskii
2013-01-23 18:08 ` Paul Eggert
2013-01-23 19:04   ` Eli Zaretskii
2013-01-23 23:38     ` Paul Eggert
2013-01-23 19:42 ` Michael Albinus
2013-01-23 20:05   ` Eli Zaretskii
2013-01-23 20:58     ` Michael Albinus
2013-01-24 16:37       ` Eli Zaretskii
2013-01-23 21:09 ` Stefan Monnier
2013-01-24 17:02   ` Eli Zaretskii
2013-01-24 18:25     ` Stefan Monnier
2013-01-24 18:38       ` Eli Zaretskii
2013-01-25  0:06         ` Stefan Monnier
2013-01-25  7:37           ` Eli Zaretskii
2013-01-25 11:36             ` Stefan Monnier
2013-01-25 20:31               ` Eli Zaretskii
2013-01-25 22:28                 ` Stefan Monnier
2013-01-26 10:54                   ` Eli Zaretskii [this message]
2013-01-26 11:34                     ` Stefan Monnier
2013-01-26 13:16                       ` Eli Zaretskii
2013-01-26 22:11                         ` Stefan Monnier
2013-01-27  7:03                           ` Eli Zaretskii
2013-01-27  8:46                             ` Andreas Schwab
2013-01-27  9:40                               ` Eli Zaretskii
2013-01-28  1:55                             ` Stefan Monnier
2013-01-28 14:44                               ` Eli Zaretskii
2013-01-28 15:21                                 ` Stefan Monnier
2013-02-02 17:19                                   ` Eli Zaretskii
2013-01-26 13:20                       ` Stephen J. Turnbull
2013-01-26  3:04                 ` Stephen J. Turnbull
2013-01-26 11:27                   ` Eli Zaretskii
2013-01-26 13:03                     ` Stephen J. Turnbull
2013-01-26 13:36                       ` Eli Zaretskii
2013-01-26 16:26                         ` Paul Eggert
2013-01-26 18:30                           ` Stephen J. Turnbull
2013-01-26 17:10                         ` Stephen J. Turnbull
2013-01-26 17:33                           ` Eli Zaretskii
2013-01-26 18:06                             ` Paul Eggert
2013-01-26 18:20                               ` Eli Zaretskii
2013-01-26 18:56                             ` Stephen J. Turnbull
2013-01-26 21:40                               ` Stefan Monnier
2013-01-26 21:44                             ` Stefan Monnier
2013-01-27  6:14                               ` Eli Zaretskii
2013-01-26 16:05                   ` Richard Stallman
2013-01-26 17:57                     ` Stephen J. Turnbull
2013-01-26 22:16                     ` Stefan Monnier
2013-01-24 10:00 ` Michael Albinus
2013-01-24 16:40   ` Eli Zaretskii

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

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

  git send-email \
    --in-reply-to=83r4l8jjtv.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=kzhr@d1.dion.ne.jp \
    --cc=michael.albinus@gmx.de \
    --cc=monnier@iro.umontreal.ca \
    /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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.