[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#56693: 29.0.50; write-file does not respect uniquify.el
From: |
Stefan Monnier |
Subject: |
bug#56693: 29.0.50; write-file does not respect uniquify.el |
Date: |
Tue, 16 Aug 2022 17:31:09 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
> Steps to reproduce (bug case):
> 1) emacs -Q
> 2) eval (setopt uniquify-buffer-name-style 'forward)
> 3) C-x C-f "~/tmp/a/x"
> 4) C-x C-f "~/tmp/b/y"
> 5) C-x C-w "~/tmp/b/x"
> 6) The buffers are not named correctly: "x" and "x<2>"
Hmm... indeed.
> (or (string= new-name (buffer-name))
> - (rename-buffer new-name t))))
> + (uniquify--rename-buffer-advice new-name t))))
That's an OK workaround, yes.
> But it seems to be an unnecessary change, since `rename-bufer' calls
> `uniquify--rename-buffer-advice'. The root-cause might be related to
> `rename-buffer' passing the result of `generate-new-buffer-name' (that
> generates "x<2>") to `uniquify--rename-buffer-advice'.
Exactly.
I installed the corresponding change, so it should be fixed on `master`.
Thanks,
Stefan
diff --git a/src/buffer.c b/src/buffer.c
index 98066a2eb60..0d553e7e2d1 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1563,7 +1563,8 @@ DEFUN ("rename-buffer", Frename_buffer, Srename_buffer,
1, 2,
(register Lisp_Object newname, Lisp_Object unique)
{
register Lisp_Object tem, buf;
-
+ Lisp_Object requestedname = newname;
+
CHECK_STRING (newname);
if (SCHARS (newname) == 0)
@@ -1599,7 +1601,7 @@ DEFUN ("rename-buffer", Frename_buffer, Srename_buffer,
1, 2,
run_buffer_list_update_hook (current_buffer);
call2 (intern ("uniquify--rename-buffer-advice"),
- BVAR (current_buffer, name), unique);
+ requestedname, unique);
/* Refetch since that last call may have done GC. */
return BVAR (current_buffer, name);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#56693: 29.0.50; write-file does not respect uniquify.el,
Stefan Monnier <=