bug#3224: 23.0.92; vc-dir vs uniquify: wrong directory used

Magnus Henoch <[email protected]>
Newsgroups gmane.emacs.bugs,gmane.emacs.pretest.bugs
Message-ID <[email protected]>
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 [email protected] 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>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.