From debbugs-submit-bounces@debbugs.gnu.org Sun May 17 08:51:22 2020 Received: (at submit) by debbugs.gnu.org; 17 May 2020 12:51:22 +0000 Received: from localhost ([127.0.0.1]:42553 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaIlF-0006iv-Gx for submit@debbugs.gnu.org; Sun, 17 May 2020 08:51:22 -0400 Received: from lists.gnu.org ([209.51.188.17]:46520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaIl9-0006ic-Fg for submit@debbugs.gnu.org; Sun, 17 May 2020 08:51:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57202) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaIl8-0002kV-QL for bug-gnu-emacs@gnu.org; Sun, 17 May 2020 08:51:15 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:36642) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaIl7-0002EJ-0M for bug-gnu-emacs@gnu.org; Sun, 17 May 2020 08:51:14 -0400 Received: by mail-wm1-x32f.google.com with SMTP id u188so7302199wmu.1 for ; Sun, 17 May 2020 05:51:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=OLK1o0Wn7ETtajj3HiC1FjHbBgYHtyyKUErTT304GNQ=; b=CV1Vi/RUFIx7Z/g1rcCtckK9fOFk6N5qbDtKWfKqpZK7xEHmVGAGFCoqjaNPTOMId9 7rxISQS+C95HVY5AgkrSN9LPcwt+MYweakAUW7NbQ6CA1oFBIhglzkzg1/h8JOIxwHfc Uc9vt1rQyfto6iyQ6XmNsSjLEwY1GsjUpNXyEicEr2tW5zFa+g9/HM26Lgab7GPXxIe6 BTTL3HJPGhvQ4h37twdsVrX44IaQZ5MTAr+30cVeqWL+GStLm/0ycf/wuhIOQsN4gPrH OSA232E+SJMVxrf2GtiMNxlAMECMw8ZwiosBYsOOaLmI0SSvAQqFc3HC1qVV5L4QaWPZ FdUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=OLK1o0Wn7ETtajj3HiC1FjHbBgYHtyyKUErTT304GNQ=; b=nrOd2KzGaUs26HKM8BQ+zGpo7xGcrEpr/LsIf/jNUXnuq0UXIIejWwCDN3qj42OjwE xR2q8tmO5RHBn02DsiL2bBYyBC0gH2081suDkLvWq3ZvLJDFF25z90psxnq5nmzMmrIc /7t5OLq33/zUgtNMBcTn+94WBygiYmpw2PPVQ7Forj37LM7N2afXX10Xa3Y2dEuCvAy5 PopyHh5JE861rN8D3JDt//NiNMBbzo6t9uvdpHImFBb7yJUZQDyVq3xAFiInHGkmILcs YfwtVweCpgD5T7zB6mA2NfyQuBIEXgxSFYDqAK5F9pRTUANwBp4CJMQkjpV/3MSCtUnL 7cOw== X-Gm-Message-State: AOAM532dd2pi7DAY1BLkUr9rohd1n4mTHajiiR9PUGQPGLmhzpmhCZ8y R/D9Zaalw9D5jWuqavbl00tHybC9ny4= X-Google-Smtp-Source: ABdhPJwH4r7XJq18wP19luBpl7FZa9T/aIB2Dxdwrg2KIm0HkxLngUpSbLK7duyP+iis+8+MLBGWeg== X-Received: by 2002:a1c:f20c:: with SMTP id s12mr5223565wmc.83.1589719870906; Sun, 17 May 2020 05:51:10 -0700 (PDT) Received: from mmrcomp (79.108.187.92.dyn.user.ono.com. [79.108.187.92]) by smtp.gmail.com with ESMTPSA id m3sm11958397wrn.96.2020.05.17.05.51.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 May 2020 05:51:10 -0700 (PDT) From: immerrr To: bug-gnu-emacs@gnu.org Subject: 28.0.50; find-alternate-file cannot rename buffer back on error from find-file-hook Date: Sun, 17 May 2020 14:51:09 +0200 Message-ID: <87d072pvwi.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=immerrr@gmail.com; helo=mail-wm1-x32f.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) find-alternate-file cannot recover from a failure in one of the `find-file-hooks', because it doesn't expect a buffer called `oname' to exist if `find-file-noselect' returns nil. Here's a simple repro that shows the failure starting from 'emacs -Q': (find-file "test.txt") (add-to-list 'find-file-hook (lambda () (error "ffh failure"))) (find-alternate-file (buffer-file-name)) It will leave the buffer visiting test.txt called " **lose**" and display an error message saying "Buffer name `test.txt' is in use.". I'm attaching a simple patch that would fix this behaviour: >From c4fed16358dd130ec1a70c606efe2652b5d0156c Mon Sep 17 00:00:00 2001 From: immerrr Date: Sun, 17 May 2020 13:47:23 +0200 Subject: [PATCH] * lisp/files.el (find-alternate-file): ensure oname is free if rolling back If switching to new buffer failed after the buffer itself created, chances are the old name is taken and needs to be released. Otherwise, `rename-buffer' will complain about name already being taken. --- lisp/files.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lisp/files.el b/lisp/files.el index dba704f7a4..8aca2437d6 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -1914,6 +1914,8 @@ find-alternate-file (setq buffer-file-truename otrue) (setq dired-directory odir) (lock-buffer) + (if (get-buffer oname) + (kill-buffer oname)) (rename-buffer oname))) (unless (eq (current-buffer) obuf) (with-current-buffer obuf --=20 2.26.2 In GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.18.9, ca= iro version 1.14.6) of 2020-03-15 built on mmrcomp Repository revision: b39b5647258297a411fae0adf58877bda85ad00d Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.11906000 System Description: Ubuntu 16.04.6 LTS Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Package cl is deprecated Quit ((closure (t) nil (error "ffh failure")) projectile-find-file-hook-function= auto-revert-find-file-function company-quickhelp-mode-check-buffers global= -company-mode-check-buffers auto-compile-on-save-mode-check-buffers recentf= -track-opened-file yas-global-mode-check-buffers global-display-line-number= s-mode-check-buffers epa-file-find-file-hook url-handlers-set-buffer-mode g= lobal-eldoc-mode-check-buffers global-font-lock-mode-check-buffers vc-refre= sh-state) Quit ffh failure [2 times] (projectile-find-file-hook-function auto-revert-find-file-function company-= quickhelp-mode-check-buffers global-company-mode-check-buffers auto-compile= -on-save-mode-check-buffers recentf-track-opened-file yas-global-mode-check= -buffers global-display-line-numbers-mode-check-buffers epa-file-find-file-= hook url-handlers-set-buffer-mode global-eldoc-mode-check-buffers global-fo= nt-lock-mode-check-buffers vc-refresh-state) ((closure (t) nil (error "ffh failure")) projectile-find-file-hook-function= auto-revert-find-file-function company-quickhelp-mode-check-buffers global= -company-mode-check-buffers auto-compile-on-save-mode-check-buffers recentf= -track-opened-file yas-global-mode-check-buffers global-display-line-number= s-mode-check-buffers epa-file-find-file-hook url-handlers-set-buffer-mode g= lobal-eldoc-mode-check-buffers global-font-lock-mode-check-buffers vc-refre= sh-state) apply: Buffer name =E2=80=98app.json=E2=80=99 is in use Quit Configured using: 'configure --prefix=3D/home/immerrr/.local --without-xwidgets' Configured features: XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS JSON PDUMPER LCMS2 GMP Important settings: value of $LC_MONETARY: en_GB.UTF-8 value of $LC_NUMERIC: en_GB.UTF-8 value of $LC_TIME: en_GB.UTF-8 value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=3Dfcitx locale-coding-system: utf-8-unix Major mode: JavaScript Minor modes in effect: guide-key-mode: t show-paren-mode: t counsel-projectile-mode: t projectile-mode: t ivy-mode: t company-quickhelp-mode: t company-quickhelp-local-mode: t global-company-mode: t company-mode: t pyvenv-mode: t whitespace-mode: t shell-dirtrack-mode: t auto-compile-on-save-mode: t recentf-mode: t yas-global-mode: t yas-minor-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t override-global-mode: t bar-cursor-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/immerrr/.emacs.d/elpa/ample-regexps-20200508.1021/init-tryout hides /= home/immerrr/.emacs.d/elpa/lua-mode-20200508.1316/init-tryout /home/immerrr/.emacs.d/elpa/xref-1.0.1/xref hides /home/immerrr/.local/shar= e/emacs/28.0.50/lisp/progmodes/xref /home/immerrr/.emacs.d/elpa/project-0.1.2/project hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/progmodes/project /home/immerrr/.emacs.d/elpa/org-20191007/ob-abc hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-abc /home/immerrr/.emacs.d/elpa/org-20191007/ob-gnuplot hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/ob-gnuplot /home/immerrr/.emacs.d/elpa/org-20191007/ob-lisp hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-lisp /home/immerrr/.emacs.d/elpa/org-20191007/org-ctags hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-ctags /home/immerrr/.emacs.d/elpa/org-20191007/ob-groovy hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-groovy /home/immerrr/.emacs.d/elpa/org-20191007/ob-ruby hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-ruby /home/immerrr/.emacs.d/elpa/org-20191007/ob-emacs-lisp hides /home/immerrr/= .local/share/emacs/28.0.50/lisp/org/ob-emacs-lisp /home/immerrr/.emacs.d/elpa/org-20191007/org hides /home/immerrr/.local/sha= re/emacs/28.0.50/lisp/org/org /home/immerrr/.emacs.d/elpa/org-20191007/ob-ebnf hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-ebnf /home/immerrr/.emacs.d/elpa/org-20191007/ob-ocaml hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/ob-ocaml /home/immerrr/.emacs.d/elpa/org-20191007/ob-lilypond hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/ob-lilypond /home/immerrr/.emacs.d/elpa/org-20191007/org-macs hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/org-macs /home/immerrr/.emacs.d/elpa/org-20191007/ob-python hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-python /home/immerrr/.emacs.d/elpa/org-20191007/org-mouse hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-mouse /home/immerrr/.emacs.d/elpa/org-20191007/ox-html hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ox-html /home/immerrr/.emacs.d/elpa/org-20191007/org-crypt hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-crypt /home/immerrr/.emacs.d/elpa/org-20191007/ob-coq hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-coq /home/immerrr/.emacs.d/elpa/org-20191007/ob-awk hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-awk /home/immerrr/.emacs.d/elpa/org-20191007/ob-haskell hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/ob-haskell /home/immerrr/.emacs.d/elpa/org-20191007/ob-dot hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-dot /home/immerrr/.emacs.d/elpa/org-20191007/org-attach hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/org-attach /home/immerrr/.emacs.d/elpa/org-20191007/ox-texinfo hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/ox-texinfo /home/immerrr/.emacs.d/elpa/org-20191007/org-timer hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-timer /home/immerrr/.emacs.d/elpa/org-20191007/org-feed hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/org-feed /home/immerrr/.emacs.d/elpa/org-20191007/ob-stan hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-stan /home/immerrr/.emacs.d/elpa/org-20191007/org-archive hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/org-archive /home/immerrr/.emacs.d/elpa/org-20191007/org-agenda hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/org-agenda /home/immerrr/.emacs.d/elpa/org-20191007/ob-css hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-css /home/immerrr/.emacs.d/elpa/org-20191007/org-pcomplete hides /home/immerrr/= .local/share/emacs/28.0.50/lisp/org/org-pcomplete /home/immerrr/.emacs.d/elpa/org-20191007/ob-shen hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-shen /home/immerrr/.emacs.d/elpa/org-20191007/ob-asymptote hides /home/immerrr/.= local/share/emacs/28.0.50/lisp/org/ob-asymptote /home/immerrr/.emacs.d/elpa/org-20191007/ob-calc hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-calc /home/immerrr/.emacs.d/elpa/org-20191007/ob-core hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-core /home/immerrr/.emacs.d/elpa/org-20191007/org-clock hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-clock /home/immerrr/.emacs.d/elpa/org-20191007/ob-lob hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-lob /home/immerrr/.emacs.d/elpa/org-20191007/ob-ditaa hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/ob-ditaa /home/immerrr/.emacs.d/elpa/org-20191007/org-lint hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/org-lint /home/immerrr/.emacs.d/elpa/org-20191007/ob hides /home/immerrr/.local/shar= e/emacs/28.0.50/lisp/org/ob /home/immerrr/.emacs.d/elpa/org-20191007/ob-latex hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/ob-latex /home/immerrr/.emacs.d/elpa/org-20191007/org-indent hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/org-indent /home/immerrr/.emacs.d/elpa/org-20191007/ob-screen hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-screen /home/immerrr/.emacs.d/elpa/org-20191007/ox-md hides /home/immerrr/.local/s= hare/emacs/28.0.50/lisp/org/ox-md /home/immerrr/.emacs.d/elpa/org-20191007/org-compat hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/org-compat /home/immerrr/.emacs.d/elpa/org-20191007/ob-eval hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-eval /home/immerrr/.emacs.d/elpa/org-20191007/org-inlinetask hides /home/immerrr= /.local/share/emacs/28.0.50/lisp/org/org-inlinetask /home/immerrr/.emacs.d/elpa/org-20191007/ob-lua hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-lua /home/immerrr/.emacs.d/elpa/org-20191007/ob-perl hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-perl /home/immerrr/.emacs.d/elpa/org-20191007/ob-vala hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-vala /home/immerrr/.emacs.d/elpa/org-20191007/ox-publish hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/ox-publish /home/immerrr/.emacs.d/elpa/org-20191007/ob-J hides /home/immerrr/.local/sh= are/emacs/28.0.50/lisp/org/ob-J /home/immerrr/.emacs.d/elpa/org-20191007/org-duration hides /home/immerrr/.= local/share/emacs/28.0.50/lisp/org/org-duration /home/immerrr/.emacs.d/elpa/org-20191007/ob-exp hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-exp /home/immerrr/.emacs.d/elpa/org-20191007/ox-org hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ox-org /home/immerrr/.emacs.d/elpa/org-20191007/ob-maxima hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-maxima /home/immerrr/.emacs.d/elpa/org-20191007/ob-fortran hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/ob-fortran /home/immerrr/.emacs.d/elpa/org-20191007/ob-ref hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-ref /home/immerrr/.emacs.d/elpa/org-20191007/ob-octave hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-octave /home/immerrr/.emacs.d/elpa/org-20191007/org-capture hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/org-capture /home/immerrr/.emacs.d/elpa/org-20191007/ob-mscgen hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-mscgen /home/immerrr/.emacs.d/elpa/org-20191007/ob-js hides /home/immerrr/.local/s= hare/emacs/28.0.50/lisp/org/ob-js /home/immerrr/.emacs.d/elpa/org-20191007/ob-tangle hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-tangle /home/immerrr/.emacs.d/elpa/org-20191007/ox-ascii hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/ox-ascii /home/immerrr/.emacs.d/elpa/org-20191007/ob-sql hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-sql /home/immerrr/.emacs.d/elpa/org-20191007/org-id hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/org-id /home/immerrr/.emacs.d/elpa/org-20191007/ox-man hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ox-man /home/immerrr/.emacs.d/elpa/org-20191007/org-colview hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/org-colview /home/immerrr/.emacs.d/elpa/org-20191007/ob-picolisp hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/ob-picolisp /home/immerrr/.emacs.d/elpa/org-20191007/org-plot hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/org-plot /home/immerrr/.emacs.d/elpa/org-20191007/ob-hledger hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/ob-hledger /home/immerrr/.emacs.d/elpa/org-20191007/org-version hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/org-version /home/immerrr/.emacs.d/elpa/org-20191007/org-src hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/org-src /home/immerrr/.emacs.d/elpa/org-20191007/ob-comint hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-comint /home/immerrr/.emacs.d/elpa/org-20191007/org-mobile hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/org-mobile /home/immerrr/.emacs.d/elpa/org-20191007/ob-ledger hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-ledger /home/immerrr/.emacs.d/elpa/org-20191007/ob-scheme hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-scheme /home/immerrr/.emacs.d/elpa/org-20191007/ob-R hides /home/immerrr/.local/sh= are/emacs/28.0.50/lisp/org/ob-R /home/immerrr/.emacs.d/elpa/org-20191007/ob-io hides /home/immerrr/.local/s= hare/emacs/28.0.50/lisp/org/ob-io /home/immerrr/.emacs.d/elpa/org-20191007/org-loaddefs hides /home/immerrr/.= local/share/emacs/28.0.50/lisp/org/org-loaddefs /home/immerrr/.emacs.d/elpa/org-20191007/ox-icalendar hides /home/immerrr/.= local/share/emacs/28.0.50/lisp/org/ox-icalendar /home/immerrr/.emacs.d/elpa/org-20191007/org-faces hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-faces /home/immerrr/.emacs.d/elpa/org-20191007/ob-sed hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-sed /home/immerrr/.emacs.d/elpa/org-20191007/org-macro hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-macro /home/immerrr/.emacs.d/elpa/org-20191007/ob-table hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/ob-table /home/immerrr/.emacs.d/elpa/org-20191007/ox-odt hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ox-odt /home/immerrr/.emacs.d/elpa/org-20191007/org-element hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/org-element /home/immerrr/.emacs.d/elpa/org-20191007/ob-processing hides /home/immerrr/= .local/share/emacs/28.0.50/lisp/org/ob-processing /home/immerrr/.emacs.d/elpa/org-20191007/ob-sass hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-sass /home/immerrr/.emacs.d/elpa/org-20191007/ob-C hides /home/immerrr/.local/sh= are/emacs/28.0.50/lisp/org/ob-C /home/immerrr/.emacs.d/elpa/org-20191007/org-protocol hides /home/immerrr/.= local/share/emacs/28.0.50/lisp/org/org-protocol /home/immerrr/.emacs.d/elpa/org-20191007/ob-clojure hides /home/immerrr/.lo= cal/share/emacs/28.0.50/lisp/org/ob-clojure /home/immerrr/.emacs.d/elpa/org-20191007/ob-matlab hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-matlab /home/immerrr/.emacs.d/elpa/org-20191007/org-tempo hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-tempo /home/immerrr/.emacs.d/elpa/org-20191007/ob-forth hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/ob-forth /home/immerrr/.emacs.d/elpa/org-20191007/org-datetree hides /home/immerrr/.= local/share/emacs/28.0.50/lisp/org/org-datetree /home/immerrr/.emacs.d/elpa/org-20191007/ob-makefile hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/ob-makefile /home/immerrr/.emacs.d/elpa/org-20191007/ox-latex hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/ox-latex /home/immerrr/.emacs.d/elpa/org-20191007/org-goto hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/org-goto /home/immerrr/.emacs.d/elpa/org-20191007/ob-shell hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/ob-shell /home/immerrr/.emacs.d/elpa/org-20191007/org-entities hides /home/immerrr/.= local/share/emacs/28.0.50/lisp/org/org-entities /home/immerrr/.emacs.d/elpa/org-20191007/ob-org hides /home/immerrr/.local/= share/emacs/28.0.50/lisp/org/ob-org /home/immerrr/.emacs.d/elpa/org-20191007/ob-sqlite hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ob-sqlite /home/immerrr/.emacs.d/elpa/org-20191007/org-install hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/org-install /home/immerrr/.emacs.d/elpa/org-20191007/ob-java hides /home/immerrr/.local= /share/emacs/28.0.50/lisp/org/ob-java /home/immerrr/.emacs.d/elpa/org-20191007/org-table hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-table /home/immerrr/.emacs.d/elpa/org-20191007/org-list hides /home/immerrr/.loca= l/share/emacs/28.0.50/lisp/org/org-list /home/immerrr/.emacs.d/elpa/org-20191007/ox hides /home/immerrr/.local/shar= e/emacs/28.0.50/lisp/org/ox /home/immerrr/.emacs.d/elpa/org-20191007/ob-plantuml hides /home/immerrr/.l= ocal/share/emacs/28.0.50/lisp/org/ob-plantuml /home/immerrr/.emacs.d/elpa/org-20191007/ox-beamer hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/ox-beamer /home/immerrr/.emacs.d/elpa/org-20191007/org-habit hides /home/immerrr/.loc= al/share/emacs/28.0.50/lisp/org/org-habit /home/immerrr/.emacs.d/elpa/org-20191007/org-footnote hides /home/immerrr/.= local/share/emacs/28.0.50/lisp/org/org-footnote /home/immerrr/.emacs.d/elpa/eldoc-1.0.0/eldoc hides /home/immerrr/.local/sh= are/emacs/28.0.50/lisp/emacs-lisp/eldoc Features: (shadow sort mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs text-property-search mailabbrev gmm-utils mailheader sendmail js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs multiple-cursors-core rect nroff-mode company-elisp find-func nameless guide-key popwin disp-table paren cus-start cus-load rvm salt-mode org-faces rst mmm-jinja2 mmm-auto mmm-vars mmm-utils mmm-compat yaml-mode go-projectile vc-git diff-mode go-rename go-guru go-eldoc go-mode find-file ffap mmr-org-settings counsel-projectile tramp-cache projectile wgrep grep ibuf-ext ibuffer ibuffer-loaddefs thingatpt counsel xdg advice dired dired-loaddefs compile swiper ivy-rich ivy delsel ivy-overlay colir traad bind-map virtualenvwrapper gud request-deferred request autorevert filenotify mail-utils url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap popup f dash s cl company-quickhelp pos-tip company-oddmuse company-keywords company-etags etags fileloop generator xref project company-gtags company-dabbrev-code company-dabbrev company-files company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-bbdb company pcase mmr-python pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util python-environment deferred whitespace python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell pcomplete parse-time iso8601 time-date ls-lisp format-spec comint ansi-color rx auto-compile packed recentf tree-widget wid-edit yasnippet hydra ring lv paredit solarized-dark-theme solarized-theme solarized solarized-faces color display-line-numbers edmacro kmacro mmr-dir-local-env mmr-bootstrap quelpa-use-package cl-extra quelpa mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr help-fns radix-tree help-mode package-recipe-mode package-build-badges package-build package-recipe eieio-compat lisp-mnt use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key use-package-core bind-key easy-mmode diminish linum-ex bar-cursor mmr-minimal mmr-ediff windmove info package easymenu browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 302441 16365) (symbols 48 28952 1) (strings 32 90240 4930) (string-bytes 1 3122895) (vectors 16 41056) (vector-slots 8 517817 16720) (floats 8 296 176) (intervals 56 983 0) (buffers 1000 17) (heap 1024 29685 1728)) From debbugs-submit-bounces@debbugs.gnu.org Sat May 30 08:27:34 2020 Received: (at 41359-done) by debbugs.gnu.org; 30 May 2020 12:27:34 +0000 Received: from localhost ([127.0.0.1]:57098 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jf0aM-0008JL-9Y for submit@debbugs.gnu.org; Sat, 30 May 2020 08:27:34 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37508) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jf0aL-0008JA-8E for 41359-done@debbugs.gnu.org; Sat, 30 May 2020 08:27:33 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:33870) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jf0aF-0003Nw-MS; Sat, 30 May 2020 08:27:27 -0400 Received: from [176.228.60.248] (port=4160 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jf0aE-0006sF-9V; Sat, 30 May 2020 08:27:27 -0400 Date: Sat, 30 May 2020 15:27:22 +0300 Message-Id: <83zh9pliad.fsf@gnu.org> From: Eli Zaretskii To: immerrr In-Reply-To: <87d072pvwi.fsf@gmail.com> (message from immerrr on Sun, 17 May 2020 14:51:09 +0200) Subject: Re: bug#41359: 28.0.50; find-alternate-file cannot rename buffer back on error from find-file-hook References: <87d072pvwi.fsf@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41359-done Cc: 41359-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: immerrr > Date: Sun, 17 May 2020 14:51:09 +0200 > > > find-alternate-file cannot recover from a failure in one of the > `find-file-hooks', because it doesn't expect a buffer called `oname' to > exist if `find-file-noselect' returns nil. Here's a simple repro that > shows the failure starting from 'emacs -Q': > > (find-file "test.txt") > (add-to-list 'find-file-hook (lambda () (error "ffh failure"))) > (find-alternate-file (buffer-file-name)) > > It will leave the buffer visiting test.txt called " **lose**" and > display an error message saying "Buffer name `test.txt' is in use.". > > I'm attaching a simple patch that would fix this behaviour: Thanks, I installed this on the master branch. From unknown Sun Jun 15 08:37:16 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 28 Jun 2020 11:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator