all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Klaus-Dieter Bauer <bauer.klaus.dieter@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Passing unicode filenames to start-process on Windows?
Date: Fri, 8 Jan 2016 00:31:38 +0100	[thread overview]
Message-ID: <CANtbJLE_3+9M=ym1GV9MB1F7YwnS-K6yTU2dNfWMwtgvSdav0A@mail.gmail.com> (raw)
In-Reply-To: <83h9ip2xdg.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2574 bytes --]

2016-01-07 17:00 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:

> > From: Klaus-Dieter Bauer <bauer.klaus.dieter@gmail.com>
> > Date: Wed, 6 Jan 2016 22:19:39 +0100
> > Cc: emacs-devel@gnu.org
> >
> > I thought up some workarounds, but they all run into limitations:
> >
> > * w32-short-file-name: Doesn't work, because in modern Windows systems
> 8.3 file
> >   names may not be generated, so it may just return the unchanged
> filename.
> > * rename-file: Allows working with a name via a temporary supported file
> name.
> >   Sadly there is no way to guarantee that such renaming is undone
> afterwards.
> > * copy-file (to a temporary directory): Would work for the current
> application,
> >   but unviable when larger amounts of data are involved.
> >
> > Would you happen to know any other possible workaround?
>
> The only one that would work reliably is to pass arguments via a file
> or a pipe.  (Some program support "response files" as a replacement
> for command-line arguments, or can read the arguments from stdin.)
>
> Do you really have programs that can support text outside of the
> current system codepage?  If you don't, then passing arguments with
> such strings is the least of your problems: once you do get these
> strings into the program, the program won't be able to do anything
> useful with them: all the library functions that receive C strings
> will misbehave, you won't be able to open files with such names, etc.
>
> IOW, I'm not sure I understand your use case in enough detail to
> provide useful advice.  Perhaps describe what you want to do and the
> program you want to invoke from Emacs in more detail.
>

​I have two usecases where I run into the issue:

- I want at some point to write an incremental backup utility
  that uses md5sum to identify renamed files. Since precompiled
  Windows binaries are 32bit, only the first 512MB of any given
  file are accessible to elisp however, so I wanted to use
  GnuWin32's md5sum.exe (but it turns out that it doesn't
  support unicode filenames anyway).

- I want to verify a convention where filenames should mirror
  the metadata in my music library. Here I intended to write
  an elisp tool (for easy interactive processing im Emacs)
  and tried to use ffmpeg (which does support unicode filenames
  in cmd.exe).

I checked and both tools allow reading the input data from
a pipe (`type UNICODE.mp3 | ffmpeg -i - ...` or `md5sum`
respectively), so that workaround is applicable to all my usecases.

Thanks for the help!
- Klaus

[-- Attachment #2: Type: text/html, Size: 4959 bytes --]

  reply	other threads:[~2016-01-07 23:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-06 15:20 Passing unicode filenames to start-process on Windows? Klaus-Dieter Bauer
2016-01-06 16:13 ` Eli Zaretskii
2016-01-06 21:19   ` Klaus-Dieter Bauer
2016-01-06 23:05     ` Davis Herring
2016-01-07  3:36       ` Eli Zaretskii
2016-01-07 16:00     ` Eli Zaretskii
2016-01-07 23:31       ` Klaus-Dieter Bauer [this message]
2016-01-08  9:17         ` Eli Zaretskii
2016-01-08 20:01           ` Klaus-Dieter Bauer

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='CANtbJLE_3+9M=ym1GV9MB1F7YwnS-K6yTU2dNfWMwtgvSdav0A@mail.gmail.com' \
    --to=bauer.klaus.dieter@gmail.com \
    --cc=eliz@gnu.org \
    --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 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.