--- Begin Message ---
Subject: |
23.1.50; dired doesn't work with files containing newlines in the filename |
Date: |
Wed, 05 Aug 2009 21:02:52 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) |
Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.
Your bug report will be posted to the emacs-pretest-bug@gnu.org mailing list.
Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:
Filenames on POSIX may contain newlines in the name. I tried that on
GNU/Linux. The `ls' command lists the file as "multi?line?file", where
the question marks represent the newlines.
Unfortunately, dired doesn't work with those files. Here's a
"screenshot":
--8<---------------cut here---------------start------------->8---
drwxr-xr-x 2 horn horn 4.0K 2009-06-30 22:32 kvm
drwxr-xr-x 4 horn horn 4.0K 2009-08-05 19:30 Mail
-rw-r--r-- 1 horn horn 4 2009-08-05 20:05 multi
line
file
drwxr-xr-x 7 horn horn 12K 2009-08-05 20:04 News
drwxr-xr-x 6 horn horn 4.0K 2009-07-27 20:59 opt
--8<---------------cut here---------------end--------------->8---
The listing itself is ok, I'd say. But hitting RET on "multi" says
"File no longer exists; type `g' to update dired buffer", and RET on
"line" or "file" say "No file on this line".
I think that `dired-move-to-end-of-filename' has to be adapted to
consider those filenames, too.
If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
`bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/usr/share/emacs/23.1.50/etc/DEBUG for instructions.
In GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu, GTK+ Version 2.16.5)
of 2009-08-02 on localhost
Windowing system distributor `The X.Org Foundation', version 11.0.10603000
configured using `configure '--prefix=/usr' '--host=x86_64-pc-linux-gnu'
'--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share'
'--sysconfdir=/etc' '--localstatedir=/var/lib' '--libdir=/usr/lib64'
'--build=x86_64-pc-linux-gnu' '--program-suffix=-emacs-23-cvs'
'--infodir=/usr/share/info/emacs-23-cvs' '--with-sound' '--with-x'
'--with-toolkit-scroll-bars' '--with-gif' '--with-jpeg' '--with-png'
'--with-rsvg' '--with-tiff' '--with-xpm' '--with-xft' '--with-libotf'
'--with-m17n-flt' '--with-x-toolkit=gtk' '--without-hesiod'
'--without-kerberos' '--without-kerberos5' '--with-gpm' '--with-dbus'
'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu'
'CFLAGS=-march=core2 -O2 -pipe' 'LDFLAGS=-Wl,-z,now''
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Article
Minor modes in effect:
display-time-mode: t
yas/global-mode: t
yas/minor-mode: t
recentf-mode: t
iswitchb-mode: t
window-number-meta-mode: t
window-number-mode: t
exec-abbrev-cmd-mode: t
savehist-mode: t
show-paren-mode: t
tooltip-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
global-auto-composition-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
M-x d t <return> <return> C-x C-b q C-x b . e m <return>
y n C-x b . e m <backspace> <return> C-x k <return>
C-x b s o <return> C-x k <return> M-x r e b <return>
i s w i t c h b SPC v i r t a l <backspace> <backspace>
u a l SPC b u f f e r n <backspace> s SPC C-g M-x g
<return> <return> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <return> y <return> <return>
<return> <return> <return> <return> <return> <return>
<return> <return> <return> <return> <return> <return>
<return> <return> <return> <return> <return> <return>
<return> <return> <return> <return> <return> <return>
<return> <return> <return> <return> <return> <return>
<return> <return> q <up> <down> <return> <return> q
<up> <up> <up> <up> <up> <up> <up> <up> <down> <return>
1 <return> <return> q <return> C-n SPC SPC SPC SPC
SPC SPC SPC SPC SPC c <return> SPC SPC SPC SPC <return>
<return> <return> <return> <return> <return> <return>
<return> <return> <return> <return> M-2 <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> M-1 <up> <return>
<return> <return> <return> <return> <return> <return>
<return> <return> <return> <return> <return> <return>
<return> <return> <return> <return> M-2 <down> <down>
<down> <down> <down> <down> <down> <down> <down> <up>
C-SPC <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<up> <up> M-w M-x r e b <return>
Recent messages:
20090805T205934.781> End of message
20090805T205934.803> End of message
20090805T205934.822> End of message
20090805T205934.843> End of message
20090805T205934.864> End of message
20090805T205934.884> End of message
20090805T205935.276> End of message
20090805T205935.626> End of message
Mark set
Saved text from "> Because a file name on Posix platforms"
Load-path shadows:
/usr/share/emacs/site-lisp/ruby-mode/ruby-mode hides
/usr/share/emacs/23.1.50/lisp/progmodes/ruby-mode
~/repos/el/org-mode/lisp/org-bbdb hides
/usr/share/emacs/23.1.50/lisp/org/org-bbdb
~/repos/el/org-mode/lisp/org-colview hides
/usr/share/emacs/23.1.50/lisp/org/org-colview
~/repos/el/org-mode/lisp/org-footnote hides
/usr/share/emacs/23.1.50/lisp/org/org-footnote
~/repos/el/org-mode/lisp/org-compat hides
/usr/share/emacs/23.1.50/lisp/org/org-compat
~/repos/el/org-mode/lisp/org-clock hides
/usr/share/emacs/23.1.50/lisp/org/org-clock
~/repos/el/org-mode/lisp/org-bibtex hides
/usr/share/emacs/23.1.50/lisp/org/org-bibtex
~/repos/el/org-mode/lisp/org-faces hides
/usr/share/emacs/23.1.50/lisp/org/org-faces
~/repos/el/org-mode/lisp/org-timer hides
/usr/share/emacs/23.1.50/lisp/org/org-timer
~/repos/el/org-mode/lisp/org-vm hides /usr/share/emacs/23.1.50/lisp/org/org-vm
~/repos/el/org-mode/lisp/org-list hides
/usr/share/emacs/23.1.50/lisp/org/org-list
~/repos/el/org-mode/lisp/org-gnus hides
/usr/share/emacs/23.1.50/lisp/org/org-gnus
~/repos/el/org-mode/lisp/org-exp hides /usr/share/emacs/23.1.50/lisp/org/org-exp
~/repos/el/org-mode/lisp/org-wl hides /usr/share/emacs/23.1.50/lisp/org/org-wl
~/repos/el/org-mode/lisp/org-plot hides
/usr/share/emacs/23.1.50/lisp/org/org-plot
~/repos/el/org-mode/lisp/org-w3m hides /usr/share/emacs/23.1.50/lisp/org/org-w3m
~/repos/el/org-mode/lisp/org-agenda hides
/usr/share/emacs/23.1.50/lisp/org/org-agenda
~/repos/el/org-mode/lisp/org-archive hides
/usr/share/emacs/23.1.50/lisp/org/org-archive
~/repos/el/org-mode/lisp/org-attach hides
/usr/share/emacs/23.1.50/lisp/org/org-attach
~/repos/el/org-mode/lisp/org-mhe hides /usr/share/emacs/23.1.50/lisp/org/org-mhe
~/repos/el/org-mode/lisp/org-irc hides /usr/share/emacs/23.1.50/lisp/org/org-irc
~/repos/el/org-mode/lisp/org-table hides
/usr/share/emacs/23.1.50/lisp/org/org-table
~/repos/el/org-mode/lisp/org-info hides
/usr/share/emacs/23.1.50/lisp/org/org-info
~/repos/el/org-mode/lisp/org-jsinfo hides
/usr/share/emacs/23.1.50/lisp/org/org-jsinfo
~/repos/el/org-mode/lisp/org-id hides /usr/share/emacs/23.1.50/lisp/org/org-id
~/repos/el/org-mode/lisp/org-publish hides
/usr/share/emacs/23.1.50/lisp/org/org-publish
~/repos/el/org-mode/lisp/org-mew hides /usr/share/emacs/23.1.50/lisp/org/org-mew
~/repos/el/org-mode/lisp/org-remember hides
/usr/share/emacs/23.1.50/lisp/org/org-remember
~/repos/el/org-mode/lisp/org-macs hides
/usr/share/emacs/23.1.50/lisp/org/org-macs
~/repos/el/org-mode/lisp/org-mouse hides
/usr/share/emacs/23.1.50/lisp/org/org-mouse
~/repos/el/org-mode/lisp/org-install hides
/usr/share/emacs/23.1.50/lisp/org/org-install
~/repos/el/org-mode/lisp/org hides /usr/share/emacs/23.1.50/lisp/org/org
~/repos/el/org-mode/lisp/org-rmail hides
/usr/share/emacs/23.1.50/lisp/org/org-rmail
~/repos/el/org-mode/lisp/org-mac-message hides
/usr/share/emacs/23.1.50/lisp/org/org-mac-message
~/elisp/elp hides /usr/share/emacs/23.1.50/lisp/emacs-lisp/elp
--- End Message ---
--- Begin Message ---
Subject: |
Re: 23.1.50; dired doesn't work with files containing newlines in the filename |
Date: |
Sun, 13 Sep 2009 16:17:38 -0400 |
> Filenames on POSIX may contain newlines in the name. I tried that on
> GNU/Linux. The `ls' command lists the file as "multi?line?file", where
> the question marks represent the newlines.
Add the "-b" option to dired-listing-switches, e.g.:
(setq dired-listing-switches (concat dired-listing-switches "b"))
We could try to parse this ourselves, but this is never going to be
reliable, e.g. a file could be named "foo\n -rw-r--r--..." and so on;
we'd never catch that.
--- End Message ---