--- Begin Message ---
Subject: |
23.0.92; vc-dir vs uniquify: wrong directory used |
Date: |
Tue, 05 May 2009 16:19:07 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (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:
I have uniquify-buffer-name-style set to post-forward, which means that
I expect buffers with the same name to be called BUFFER|DIR. This
doesn't quite work with vc-dir: the DIR part corresponds to the setting
of `default-directory' in the buffer where I invoke the command, instead
of the directory I specify.
To reproduce, start "emacs -Q" and evaluate:
(progn
(require 'uniquify)
(setq uniquify-buffer-name-style 'post-forward)
(cd "/tmp")
(make-directory "foo")
(make-directory "bar")
(vc-dir "/tmp/foo")
(cd "/tmp/foo")
(vc-dir "/tmp/bar"))
You will get two buffers, "*vc-dir*|foo" displaying /tmp/bar, and
"*vc-dir*|/tmp" displaying /tmp/foo.
I tried to fix this by binding default-directory around
create-file-buffer in vc-dir-prepare-status-buffer, which partly fixed
the problem: the buffer for bar had a correct name, but the buffer for
foo was still "*vc-dir*|/tmp".
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/local/share/emacs/23.0.92/etc/DEBUG for instructions.
In GNU Emacs 23.0.92.1 (i686-pc-linux-gnu, GTK+ Version 2.14.4)
of 2009-04-28 on linux-b2a3
Windowing system distributor `The X.Org Foundation', version 11.0.10502000
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: C
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: @im=local
locale-coding-system: utf-8-unix
default-enable-multibyte-characters: t
Major mode: Diff
Minor modes in effect:
diff-auto-refine-mode: t
shell-dirtrack-mode: t
jabber-activity-mode: t
jabber-mode-line-mode: t
show-paren-mode: t
server-mode: t
icomplete-mode: t
display-time-mode: t
tooltip-mode: t
mouse-wheel-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
line-number-mode: t
transient-mark-mode: t
Recent input:
d <C-s-up> <tab> <return> <next> <up> <down> <down>
<down> <down> <down> <down> <down> <down> M-f M-f M-f
M-f s-i <return> C-x v d ~ / b l a <tab> s v <tab>
a <tab> p <tab> <return> <C-s-down> C-h f u n i j <backspace>
q <tab> <tab> r a t <tab> <M-backspace> b u <tab> f
<tab> <return> <C-s-up> <tab> <return> <C-s-up> <tab>
<return> <tab> <return> <down> <down> C-x b <return>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <right>
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> C-h f <return> M-x l o c a
t e <return> v c - d i r . e l <return> <down> <down>
<return> s-i v <tab> i <return> s-i v c - d i r - p
r e <return> p <return> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> C-e <return> <tab> ( l e t SPC ( ( d
e f a u l t - d i r e c t o r y SPC d i r ) ) <down>
<down> C-a C-k C-k <down> <down> <down> <down> C-e
) C-x C-s C-x C-e C-x v d ~ / b l a <tab> s v <tab>
n o <tab> <return> C-x v d <backspace> n o d <return>
a d <return> <return> C-x v d <backspace> <backspace>
a p <return> a d <return> <return> C-x b C-s <return>
C-x v = C-h v u n i q u <tab> b u <return> M-x r e
p o r t - e <tab> <return>
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#3224: 23.0.92; vc-dir vs uniquify: wrong directory used |
Date: |
Fri, 8 Jan 2010 04:40:33 +0100 |
On Fri, Jan 8, 2010 at 04:22, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
> Problem is that some modes use list-buffers-directory for incompatible
> purposes. E.g. shell-mode uses it to display the CWD of the shell in
> the buffer-menu.
In the particular case of shell that would not cause trouble anyway;
shell for the same buffer name just pops to that buffer, and C-u M-x
shell calls `generate-new-buffer-name' and bypasses uniquify. AFAICS,
eshell does the same thing (C-u M-x eshell brings a "*eshell*<2>"
buffer).
But this is all best left post-release, for the introduction of a new variable.
I'm closing this bug now, as the patch is already installed.
Juanma
--- End Message ---