GNU bug report logs - #66697
30.0.50; [PATCH] desktop-save-mode with expiring remote buffers

Previous Next

Package: emacs;

Reported by: Manuel Giraud <manuel <at> ledu-giraud.fr>

Date: Mon, 23 Oct 2023 09:23:01 UTC

Severity: normal

Tags: patch

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 66697 in the body.
You can then email your comments to 66697 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 09:23:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Manuel Giraud <manuel <at> ledu-giraud.fr>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 23 Oct 2023 09:23:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; [PATCH] desktop-save-mode with expiring remote buffers
Date: Mon, 23 Oct 2023 11:21:47 +0200
[Message part 1 (text/plain, inline)]
Hi,

I'm using desktop-save-mode and regularly open files via Tramp with a
method that asks for a password and that would eventually expire.  By
default 'desktop-files-not-to-save' is "\\(\\`/[^/:]*:\\|(ftp)\\'\\)" so
I expect that those remote buffer are not saved by desktop-save.

When such a remote buffer is opened (but not displayed nor used), Emacs
will keep asking me for this password and I find it annoying.

I try to track down this issue and found out that the call to
'desktop-buffer-info' on each buffer triggered this password prompt.

The following patch tries to solve this.
[0001-Test-desktop-files-not-to-save-early.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]

In GNU Emacs 30.0.50 (build 1, x86_64-unknown-openbsd7.4) of 2023-10-23
 built on computer
Repository revision: 4ff0c738d050942932e73c627a7d6e31ca5c6244
Repository branch: mgi/auto-save-pred
Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
System Description: OpenBSD computer 7.4 GENERIC.MP#1397 amd64

Configured using:
 'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin
 --with-x-toolkit=no --with-toolkit-scroll-bars=no --without-cairo
 --without-sound --without-compress-install
 CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

Configured features:
DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2
LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG SQLITE3
THREADS TIFF TREE_SITTER WEBP X11 XDBE XFT XIM XINPUT2 XPM ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  gnus-dired-mode: t
  server-mode: t
  override-global-mode: t
  repeat-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-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
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/manuel/.emacs.d/elpa/ef-themes-1.3.0/theme-loaddefs hides /home/manuel/emacs/share/emacs/30.0.50/lisp/theme-loaddefs

Features:
(shadow emacsbug pcmpl-git log-edit add-log shortdoc comp comp-cstr
help-fns radix-tree descr-text sort gnus-cite flow-fill mail-extr
textsec uni-scripts idna-mapping ucs-normalize uni-confusable
textsec-check gnus-async gnus-bcklg gnus-ml gnus-topic mm-archive
url-cache qp utf-7 imap rfc2104 nndoc nndraft nnmh network-stream
nnfolder nnml gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp
gnus-cache nnrss conf-mode tramp-cmds tramp-cache time-stamp tramp-sh
smerge-mode diff whitespace dabbrev pulse ibuf-ext ibuffer
ibuffer-loaddefs cus-start misearch multi-isearch org-duration
org-agenda org-indent view pascal org-element org-persist org-id
avl-tree oc-basic ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb
ol-w3m ol-doi org-link-doi gnus-icalendar org-capture org-refile org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint
org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs org-version org-compat org-macs vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs log-view pcvs-util vc-hg sh-script smie treesit
executable eww url-queue mm-url vc-dir ewoc mule-util on-screen texinfo
texinfo-loaddefs emacs-news-mode gnus-dired vc autorevert filenotify
vc-git diff-mode vc-dispatcher bug-reference paredit warnings time
battery cus-load exwm-randr xcb-randr exwm-config ido exwm exwm-input
xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render
exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto
xcb-types xcb-debug server ef-summer-theme ef-themes zone speed-type
url-http url-auth url-gw nsm compat ytdious mingus libmpdee reporter
edebug debug backtrace transmission color calc-bin calc-ext calc
calc-loaddefs rect calc-macs supercite regi ebdb-message ebdb-gnus
gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig
gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo
gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo
gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822
mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums gmm-utils mailheader
gnus-win ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev eieio-opt
speedbar ezimage dframe find-func eieio-base pcase timezone icalendar
gnus nnheader gnus-util mail-utils range mm-util mail-prsvr wid-edit
visual-basic-mode cl web-mode derived disp-table erlang-start
smart-tabs-mode skeleton cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs slime-asdf grep slime-tramp
tramp rx trampver tramp-integration files-x tramp-message tramp-compat
xdg shell pcomplete parse-time iso8601 time-date format-spec
tramp-loaddefs slime-fancy slime-indentation slime-cl-indent cl-indent
slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree advice slime-scratch slime-presentations
bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl slime-parse slime
apropos compile text-property-search etags fileloop generator xref
project arc-mode archive-mode noutline outline icons pp comint ansi-osc
ansi-color ring hyperspec thingatpt slime-autoloads edmacro kmacro
use-package-bind-key bind-key appt diary-lib diary-loaddefs cal-menu
calendar cal-loaddefs dired-x dired-aux dired dired-loaddefs
notifications dbus xml cl-extra help-mode use-package-core repeat
easy-mmode desktop frameset debbugs-autoloads ebdb-autoloads
ef-themes-autoloads exwm-autoloads hyperbole-autoloads magit-autoloads
git-commit-autoloads finder-inf magit-section-autoloads dash-autoloads
on-screen-autoloads osm-autoloads paredit-autoloads request-autoloads
rust-mode-autoloads s-autoloads speed-type-autoloads
transmission-autoloads tree-mode-autoloads with-editor-autoloads info
compat-autoloads ytdious-autoloads package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt
fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode
register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
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 emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind kqueue lcms2 dynamic-setting system-font-setting
font-render-setting xinput2 x multi-tty move-toolbar
make-network-process emacs)

Memory information:
((conses 16 1090540 641027) (symbols 48 72542 5)
 (strings 32 363748 18296) (string-bytes 1 11744990)
 (vectors 16 186883) (vector-slots 8 3624315 209906)
 (floats 8 645 1052) (intervals 56 38440 4146) (buffers 992 113))

-- 
Manuel Giraud

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 11:42:01 GMT) Full text and rfc822 format available.

Message #8 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50;
 [PATCH] desktop-save-mode with expiring remote buffers
Date: Mon, 23 Oct 2023 14:41:01 +0300
> Date: Mon, 23 Oct 2023 11:21:47 +0200
> From:  Manuel Giraud via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> I'm using desktop-save-mode and regularly open files via Tramp with a
> method that asks for a password and that would eventually expire.  By
> default 'desktop-files-not-to-save' is "\\(\\`/[^/:]*:\\|(ftp)\\'\\)" so
> I expect that those remote buffer are not saved by desktop-save.
> 
> When such a remote buffer is opened (but not displayed nor used), Emacs
> will keep asking me for this password and I find it annoying.

Could you please clarify when does Emacs prompt you for a password?
Is it when you restore desktop, save desktop, some other situation?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 12:36:01 GMT) Full text and rfc822 format available.

Message #11 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 14:34:34 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Date: Mon, 23 Oct 2023 11:21:47 +0200
>> From:  Manuel Giraud via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> 
>> I'm using desktop-save-mode and regularly open files via Tramp with a
>> method that asks for a password and that would eventually expire.  By
>> default 'desktop-files-not-to-save' is "\\(\\`/[^/:]*:\\|(ftp)\\'\\)" so
>> I expect that those remote buffer are not saved by desktop-save.
>> 
>> When such a remote buffer is opened (but not displayed nor used), Emacs
>> will keep asking me for this password and I find it annoying.
>
> Could you please clarify when does Emacs prompt you for a password?
> Is it when you restore desktop, save desktop, some other situation?

Hi Eli,

It is when 'desktop-save' is called.  So it is also called in the
desktop-auto-save timer.

And BTW, my patch is wrong because it currently bypasses dired buffers
(and maybe others).
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 12:49:02 GMT) Full text and rfc822 format available.

Message #14 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 15:47:36 +0300
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: 66697 <at> debbugs.gnu.org
> Date: Mon, 23 Oct 2023 14:34:34 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> Date: Mon, 23 Oct 2023 11:21:47 +0200
> >> From:  Manuel Giraud via "Bug reports for GNU Emacs,
> >>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> >> 
> >> I'm using desktop-save-mode and regularly open files via Tramp with a
> >> method that asks for a password and that would eventually expire.  By
> >> default 'desktop-files-not-to-save' is "\\(\\`/[^/:]*:\\|(ftp)\\'\\)" so
> >> I expect that those remote buffer are not saved by desktop-save.
> >> 
> >> When such a remote buffer is opened (but not displayed nor used), Emacs
> >> will keep asking me for this password and I find it annoying.
> >
> > Could you please clarify when does Emacs prompt you for a password?
> > Is it when you restore desktop, save desktop, some other situation?
> 
> Hi Eli,
> 
> It is when 'desktop-save' is called.  So it is also called in the
> desktop-auto-save timer.

So you are saying that, even though these buffers are in
desktop-files-not-to-save value, Emacs still asks for a password for
them when desktop.el saves the desktop?  If so, can you set
debug-on-quit non-nil and when Emacs prompts for the password, type
C-g and post the backtrace here?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 12:58:01 GMT) Full text and rfc822 format available.

Message #17 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 14:56:33 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

[...]

> So you are saying that, even though these buffers are in
> desktop-files-not-to-save value, Emacs still asks for a password for
> them when desktop.el saves the desktop?

Yes.

> If so, can you set debug-on-quit non-nil and when Emacs prompts for
> the password, type C-g and post the backtrace here?

I have already (kind of) done that when trying to find out this issue:
I've placed a 'debug' call into 'tramp-read-passwd'.  Here is what I
get:

--8<---------------cut here---------------start------------->8---
Debugger entered: nil
  (let* ((default-directory tramp-compat-temporary-file-directory) (case-fold-search t) (vec (tramp-get-connection-property proc "password-vector" (process-get proc 'tramp-vector))) (key (tramp-make-tramp-file-name vec 'noloc)) (method (let* ((cl-x vec)) (progn (or (let* (...) (progn ...)) (signal 'wrong-type-argument (list ... cl-x))) (nth 1 cl-x)))) (user (or (tramp-file-name-user-domain vec) (tramp-get-connection-property key "login-as"))) (host (tramp-file-name-host-port vec)) (pw-prompt (or prompt (save-current-buffer (set-buffer (process-buffer proc)) (tramp-check-for-regexp proc tramp-password-prompt-regexp) (if (string-match-p "passphrase" (match-string 1)) (match-string 0) (format "%s for %s " (capitalize ...) key))))) (auth-source-creation-prompts (list (cons 'secret pw-prompt))) (auth-sources (buffer-local-value 'auth-sources (process-buffer proc))) auth-info auth-passwd tramp-dont-suspend-timers) (debug) (unwind-protect (or (setq tramp-password-save-function nil) (condition-case nil (progn (and (tramp-get-connection-property vec "first-password-request") (progn (setq auth-info ...) (setq tramp-password-save-function ...) (setq auth-passwd ...)))) (error nil)) (if tramp-dont-suspend-timers (progn (progn (setq auth-passwd (password-read pw-prompt key)) (setq tramp-password-save-function #'...)) auth-passwd) (let ((stimers (with-timeout-suspend)) timer-list timer-idle-list) (unwind-protect (progn (progn ... ...) auth-passwd) (with-timeout-unsuspend stimers))))) (if (tramp-string-empty-or-nil-p auth-passwd) (progn (setq tramp-password-save-function nil))) (tramp-set-connection-property vec "first-password-request" nil)))
  tramp-read-passwd(#<process *tramp/doas root <at> bb*>)
  tramp-action-password(#<process *tramp/doas root <at> bb*> (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil))
  tramp-process-one-action(#<process *tramp/doas root <at> bb*> (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) ((tramp-login-prompt-regexp tramp-action-login) (tramp-password-prompt-regexp tramp-action-password) (tramp-otp-password-prompt-regexp tramp-action-otp-password) (tramp-wrong-passwd-regexp tramp-action-permission-denied) (shell-prompt-pattern tramp-action-succeed) (tramp-shell-prompt-pattern tramp-action-succeed) (tramp-yesno-prompt-regexp tramp-action-yesno) (tramp-yn-prompt-regexp tramp-action-yn) (tramp-terminal-prompt-regexp tramp-action-terminal) (tramp-antispoof-regexp tramp-action-confirm-message) (tramp-security-key-confirm-regexp tramp-action-show-and-confirm-message) (tramp-process-alive-regexp tramp-action-process-alive)))
  tramp-process-actions(#<process *tramp/doas root <at> bb*> (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) 1 ((tramp-login-prompt-regexp tramp-action-login) (tramp-password-prompt-regexp tramp-action-password) (tramp-otp-password-prompt-regexp tramp-action-otp-password) (tramp-wrong-passwd-regexp tramp-action-permission-denied) (shell-prompt-pattern tramp-action-succeed) (tramp-shell-prompt-pattern tramp-action-succeed) (tramp-yesno-prompt-regexp tramp-action-yesno) (tramp-yn-prompt-regexp tramp-action-yn) (tramp-terminal-prompt-regexp tramp-action-terminal) (tramp-antispoof-regexp tramp-action-confirm-message) (tramp-security-key-confirm-regexp tramp-action-show-and-confirm-message) (tramp-process-alive-regexp tramp-action-process-alive)) 10)
  tramp-maybe-open-connection((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil))
  tramp-send-command((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("echo ~root 2>/dev/null; echo tramp_exit_status $?" 6 10 (tramp-default t)))
  tramp-send-command-and-check((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("echo ~root" 6 10 (tramp-default t)))
  tramp-sh-handle-get-home-directory((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t)))
  apply(tramp-sh-handle-get-home-directory ((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t))))
  tramp-sh-file-name-handler(tramp-get-home-directory (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t)))
  apply(tramp-sh-file-name-handler tramp-get-home-directory ((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t))))
  tramp-file-name-handler(tramp-get-home-directory (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t)))
  tramp-get-home-directory((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t)))
  tramp-sh-handle-expand-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
  apply(tramp-sh-handle-expand-file-name (#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil))
  tramp-sh-file-name-handler(expand-file-name #("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
  apply(tramp-sh-file-name-handler expand-file-name (#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil))
  tramp-file-name-handler(expand-file-name #("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
  expand-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)))
  desktop-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) "/home/manuel/.emacs.d/")
  dired-desktop-buffer-misc-data("/home/manuel/.emacs.d/")
  desktop-buffer-info(#<buffer ~</doas:root <at> bb:>>)
  mapcar(desktop-buffer-info (#<buffer xterm.h> #<buffer tramp.el> #<buffer  *Minibuf-1*> #<buffer desktop.el> #<buffer ~</doas:root <at> bb:>> #<buffer  *Minibuf-2*> #<buffer init.el> #<buffer net> #<buffer tramp-cmds.el<emacs-repo>> #<buffer tramp-sh.el> #<buffer tramp-cmds.el<30.0.50>> #<buffer NEWS> #<buffer tramp.texi> #<buffer *info*> #<buffer files.el<emacs-repo>> #<buffer *vc-dir*<emacs-repo>> #<buffer tmp> #<buffer files.el<30.0.50>> #<buffer *eww*> #<buffer build-emacs.sh> #<buffer .xsession> #<buffer emacs.c> #<buffer terminal.c> #<buffer termhooks.h> #<buffer haikuterm.c> #<buffer xterm.c> #<buffer androidfns.c> #<buffer pgtkfns.c> #<buffer haikufns.c> #<buffer xfns.c> #<buffer widget.c> #<buffer gtkutil.c> #<buffer result> #<buffer lisp.h> #<buffer eval.c> #<buffer alloc.c> #<buffer ~</home>> #<buffer config.h> #<buffer pdumper.c> #<buffer dotfiles> #<buffer x> #<buffer bin> #<buffer *vc-dir*<sys>> #<buffer patches> #<buffer emacs<editors>> #<buffer vc.el> #<buffer bar.txt> #<buffer bar> #<buffer foo.txt> ...))
  desktop-save("/home/manuel/.emacs.d/" nil t)
  desktop-auto-save()
  apply(desktop-auto-save nil)
  timer-event-handler([t 0 30 0 nil desktop-auto-save nil idle 0 nil])
--8<---------------cut here---------------end--------------->8---

-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 13:27:02 GMT) Full text and rfc822 format available.

Message #20 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Manuel Giraud via "Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs <at> gnu.org>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 66697 <at> debbugs.gnu.org,
 Manuel Giraud <manuel <at> ledu-giraud.fr>
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 15:25:40 +0200
Manuel Giraud via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:

Hi Manuel,

>> If so, can you set debug-on-quit non-nil and when Emacs prompts for
>> the password, type C-g and post the backtrace here?
>
> I have already (kind of) done that when trying to find out this issue:
> I've placed a 'debug' call into 'tramp-read-passwd'.  Here is what I
> get:

The relevant part is this:

>   tramp-file-name-handler(expand-file-name #("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
>   expand-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)))
>   desktop-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) "/home/manuel/.emacs.d/")

desktop-file-name calls expand-file-name, which triggers Tramp actions.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 13:27:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 13:34:01 GMT) Full text and rfc822 format available.

Message #26 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: "Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs <at> gnu.org>, Eli Zaretskii <eliz <at> gnu.org>,
 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 15:33:07 +0200
Michael Albinus <michael.albinus <at> gmx.de> writes:

Hi Michael,

[...]

> The relevant part is this:
>
>>   tramp-file-name-handler(expand-file-name #("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
>>   expand-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)))
>>   desktop-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) "/home/manuel/.emacs.d/")
>
> desktop-file-name calls expand-file-name, which triggers Tramp
> actions.

So do you think it should be fixed into 'desktop-file-name'?
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 13:34:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 14:08:02 GMT) Full text and rfc822 format available.

Message #32 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Manuel Giraud via "Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs <at> gnu.org>
Cc: eliz <at> gnu.org, 66697 <at> debbugs.gnu.org, Manuel Giraud <manuel <at> ledu-giraud.fr>
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 16:07:15 +0200
Manuel Giraud via "Bug reports for GNU Emacs, the Swiss army knife of
text editors" <bug-gnu-emacs <at> gnu.org> writes:

> Hi Michael,

Hi Manuel,

>>>   tramp-file-name-handler(expand-file-name #("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
>>>   expand-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)))
>>>   desktop-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) "/home/manuel/.emacs.d/")
>>
>> desktop-file-name calls expand-file-name, which triggers Tramp
>> actions.
>
> So do you think it should be fixed into 'desktop-file-name'?

I don't know desktop-file-name and its intention. If it shouldn't
trigger remote actions, the function must let-bind non-essential to t.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 14:09:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 14:22:02 GMT) Full text and rfc822 format available.

Message #38 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 17:21:25 +0300
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: 66697 <at> debbugs.gnu.org
> Date: Mon, 23 Oct 2023 14:56:33 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> [...]
> 
> > So you are saying that, even though these buffers are in
> > desktop-files-not-to-save value, Emacs still asks for a password for
> > them when desktop.el saves the desktop?
> 
> Yes.
> 
> > If so, can you set debug-on-quit non-nil and when Emacs prompts for
> > the password, type C-g and post the backtrace here?
> 
> I have already (kind of) done that when trying to find out this issue:
> I've placed a 'debug' call into 'tramp-read-passwd'.  Here is what I
> get:
> 
> --8<---------------cut here---------------start------------->8---
> Debugger entered: nil
>   (let* ((default-directory tramp-compat-temporary-file-directory) (case-fold-search t) (vec (tramp-get-connection-property proc "password-vector" (process-get proc 'tramp-vector))) (key (tramp-make-tramp-file-name vec 'noloc)) (method (let* ((cl-x vec)) (progn (or (let* (...) (progn ...)) (signal 'wrong-type-argument (list ... cl-x))) (nth 1 cl-x)))) (user (or (tramp-file-name-user-domain vec) (tramp-get-connection-property key "login-as"))) (host (tramp-file-name-host-port vec)) (pw-prompt (or prompt (save-current-buffer (set-buffer (process-buffer proc)) (tramp-check-for-regexp proc tramp-password-prompt-regexp) (if (string-match-p "passphrase" (match-string 1)) (match-string 0) (format "%s for %s " (capitalize ...) key))))) (auth-source-creation-prompts (list (cons 'secret pw-prompt))) (auth-sources (buffer-local-value 'auth-sources (process-buffer proc))) auth-info auth-passwd tramp-dont-suspend-timers) (debug) (unwind-protect (or (setq tramp-password-save-function nil) (condition-case nil (progn (and (tramp-get-connection-property vec "first-password-request") (progn (setq auth-info ...) (setq tramp-password-save-function ...) (setq auth-passwd ...)))) (error nil)) (if tramp-dont-suspend-timers (progn (progn (setq auth-passwd (password-read pw-prompt key)) (setq tramp-password-save-function #'...)) auth-passwd) (let ((stimers (with-timeout-suspend)) timer-list timer-idle-list) (unwind-protect (progn (progn ... ...) auth-passwd) (with-timeout-unsuspend stimers))))) (if (tramp-string-empty-or-nil-p auth-passwd) (progn (setq tramp-password-save-function nil))) (tramp-set-connection-property vec "first-password-request" nil)))
>   tramp-read-passwd(#<process *tramp/doas root <at> bb*>)
>   tramp-action-password(#<process *tramp/doas root <at> bb*> (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil))
>   tramp-process-one-action(#<process *tramp/doas root <at> bb*> (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) ((tramp-login-prompt-regexp tramp-action-login) (tramp-password-prompt-regexp tramp-action-password) (tramp-otp-password-prompt-regexp tramp-action-otp-password) (tramp-wrong-passwd-regexp tramp-action-permission-denied) (shell-prompt-pattern tramp-action-succeed) (tramp-shell-prompt-pattern tramp-action-succeed) (tramp-yesno-prompt-regexp tramp-action-yesno) (tramp-yn-prompt-regexp tramp-action-yn) (tramp-terminal-prompt-regexp tramp-action-terminal) (tramp-antispoof-regexp tramp-action-confirm-message) (tramp-security-key-confirm-regexp tramp-action-show-and-confirm-message) (tramp-process-alive-regexp tramp-action-process-alive)))
>   tramp-process-actions(#<process *tramp/doas root <at> bb*> (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) 1 ((tramp-login-prompt-regexp tramp-action-login) (tramp-password-prompt-regexp tramp-action-password) (tramp-otp-password-prompt-regexp tramp-action-otp-password) (tramp-wrong-passwd-regexp tramp-action-permission-denied) (shell-prompt-pattern tramp-action-succeed) (tramp-shell-prompt-pattern tramp-action-succeed) (tramp-yesno-prompt-regexp tramp-action-yesno) (tramp-yn-prompt-regexp tramp-action-yn) (tramp-terminal-prompt-regexp tramp-action-terminal) (tramp-antispoof-regexp tramp-action-confirm-message) (tramp-security-key-confirm-regexp tramp-action-show-and-confirm-message) (tramp-process-alive-regexp tramp-action-process-alive)) 10)
>   tramp-maybe-open-connection((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil))
>   tramp-send-command((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("echo ~root 2>/dev/null; echo tramp_exit_status $?" 6 10 (tramp-default t)))
>   tramp-send-command-and-check((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("echo ~root" 6 10 (tramp-default t)))
>   tramp-sh-handle-get-home-directory((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t)))
>   apply(tramp-sh-handle-get-home-directory ((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t))))
>   tramp-sh-file-name-handler(tramp-get-home-directory (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t)))
>   apply(tramp-sh-file-name-handler tramp-get-home-directory ((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t))))
>   tramp-file-name-handler(tramp-get-home-directory (tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t)))
>   tramp-get-home-directory((tramp-file-name "doas" #("root" 0 4 (tramp-default t)) nil #("bb" 0 2 (tramp-default t)) nil "~/" nil) #("root" 0 4 (tramp-default t)))
>   tramp-sh-handle-expand-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
>   apply(tramp-sh-handle-expand-file-name (#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil))
>   tramp-sh-file-name-handler(expand-file-name #("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
>   apply(tramp-sh-file-name-handler expand-file-name (#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil))
>   tramp-file-name-handler(expand-file-name #("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) nil)
>   expand-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)))
>   desktop-file-name(#("/doas:root <at> bb:~/" 6 10 (tramp-default t) 11 13 (tramp-default t)) "/home/manuel/.emacs.d/")
>   dired-desktop-buffer-misc-data("/home/manuel/.emacs.d/")
>   desktop-buffer-info(#<buffer ~</doas:root <at> bb:>>)
>   mapcar(desktop-buffer-info (#<buffer xterm.h> #<buffer tramp.el> #<buffer  *Minibuf-1*> #<buffer desktop.el> #<buffer ~</doas:root <at> bb:>> #<buffer  *Minibuf-2*> #<buffer init.el> #<buffer net> #<buffer tramp-cmds.el<emacs-repo>> #<buffer tramp-sh.el> #<buffer tramp-cmds.el<30.0.50>> #<buffer NEWS> #<buffer tramp.texi> #<buffer *info*> #<buffer files.el<emacs-repo>> #<buffer *vc-dir*<emacs-repo>> #<buffer tmp> #<buffer files.el<30.0.50>> #<buffer *eww*> #<buffer build-emacs.sh> #<buffer .xsession> #<buffer emacs.c> #<buffer terminal.c> #<buffer termhooks.h> #<buffer haikuterm.c> #<buffer xterm.c> #<buffer androidfns.c> #<buffer pgtkfns.c> #<buffer haikufns.c> #<buffer xfns.c> #<buffer widget.c> #<buffer gtkutil.c> #<buffer result> #<buffer lisp.h> #<buffer eval.c> #<buffer alloc.c> #<buffer ~</home>> #<buffer config.h> #<buffer pdumper.c> #<buffer dotfiles> #<buffer x> #<buffer bin> #<buffer *vc-dir*<sys>> #<buffer patches> #<buffer emacs<editors>> #<buffer vc.el> #<buffer bar.txt> #<buffer bar> #<buffer foo.txt> ...))
>   desktop-save("/home/manuel/.emacs.d/" nil t)
>   desktop-auto-save()
>   apply(desktop-auto-save nil)
>   timer-event-handler([t 0 30 0 nil desktop-auto-save nil idle 0 nil])
> --8<---------------cut here---------------end--------------->8---

Doesn't this tell that the problem is in dired.el, not in desktop.el?
The problematic call comes from dired-desktop-buffer-misc-data, not
from desktop.el.  So it's dired-desktop-buffer-misc-data that needs to
be fixed.

Alternatively, we could refrain calling desktop-buffer-info on buffers
for which desktop-save-buffer-p returns nil.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 14:57:02 GMT) Full text and rfc822 format available.

Message #41 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 16:55:58 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

[...]

> Doesn't this tell that the problem is in dired.el, not in desktop.el?
> The problematic call comes from dired-desktop-buffer-misc-data, not
> from desktop.el.  So it's dired-desktop-buffer-misc-data that needs to
> be fixed.

Ok, I'll investigate here then.

> Alternatively, we could refrain calling desktop-buffer-info on buffers
> for which desktop-save-buffer-p returns nil.

That was kind of what my patch does… but it creates new issues because
'desktop-save-buffer-p' handles many test cases against file-name,
buffer-name and mode.  And file-name, buffer-name and mode are all
retrieved into 'desktop-buffer-info'.
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 15:23:01 GMT) Full text and rfc822 format available.

Message #44 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: "Manuel Giraud via Bug reports for GNU Emacs, the Swiss army knife of
 text editors" <bug-gnu-emacs <at> gnu.org>, Eli Zaretskii <eliz <at> gnu.org>,
 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 17:21:36 +0200
Manuel Giraud <manuel <at> ledu-giraud.fr> writes:

> Hi Michael,

Hi Manual,

>> desktop-file-name calls expand-file-name, which triggers Tramp
>> actions.
>
> So do you think it should be fixed into 'desktop-file-name'?

I don't know desktop.el, so I don't think anything where to fix ...

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 15:23:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Mon, 23 Oct 2023 15:47:02 GMT) Full text and rfc822 format available.

Message #50 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Mon, 23 Oct 2023 17:46:21 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

[...]

> Doesn't this tell that the problem is in dired.el, not in desktop.el?
> The problematic call comes from dired-desktop-buffer-misc-data, not
> from desktop.el.  So it's dired-desktop-buffer-misc-data that needs to
> be fixed.

I just did another test that could confirm that dired is misbehaving
here: Emacs does not ask for password if I just have a remote *file*
opened.
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Tue, 24 Oct 2023 09:22:02 GMT) Full text and rfc822 format available.

Message #53 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Tue, 24 Oct 2023 11:21:21 +0200
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:


[...]

> Doesn't this tell that the problem is in dired.el, not in desktop.el?
> The problematic call comes from dired-desktop-buffer-misc-data, not
> from desktop.el.  So it's dired-desktop-buffer-misc-data that needs to
> be fixed.

So I work a bit on 'dired-desktop-buffer-misc-data' and have the
following solution:

[dired.diff (text/x-patch, inline)]
diff --git a/lisp/dired.el b/lisp/dired.el
index cc8c74839b9..cae9f31010a 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -4875,22 +4875,30 @@ dired-dnd-handle-file
 (eval-when-compile (require 'desktop))
 (declare-function desktop-file-name "desktop" (filename dirname))
 
+(defun dired-desktop-buffer-save-p (dired-directory)
+  "Should this DIRED-DIRECTORY desktop saved?"
+  (if (consp dired-directory)
+      (not (string-match-p desktop-files-not-to-save (car dired-directory)))
+    (not (string-match-p desktop-files-not-to-save dired-directory))))
+
 (defun dired-desktop-buffer-misc-data (dirname)
   "Auxiliary information to be saved in desktop file."
-  (cons
-   ;; Value of `dired-directory'.
-   (if (consp dired-directory)
-       ;; Directory name followed by list of files.
-       (cons (desktop-file-name (car dired-directory) dirname)
-             (cdr dired-directory))
-     ;; Directory name, optionally with shell wildcard.
-     (desktop-file-name dired-directory dirname))
-   ;; Subdirectories in `dired-subdir-alist'.
-   (cdr
-    (nreverse
-     (mapcar
-      (lambda (f) (desktop-file-name (car f) dirname))
-      dired-subdir-alist)))))
+  (when (and (stringp desktop-files-not-to-save)
+             (dired-desktop-buffer-save-p dired-directory))
+    (cons
+     ;; Value of `dired-directory'.
+     (if (consp dired-directory)
+         ;; Directory name followed by list of files.
+         (cons (desktop-file-name (car dired-directory) dirname)
+               (cdr dired-directory))
+       ;; Directory name, optionally with shell wildcard.
+       (desktop-file-name dired-directory dirname))
+     ;; Subdirectories in `dired-subdir-alist'.
+     (cdr
+      (nreverse
+       (mapcar
+        (lambda (f) (desktop-file-name (car f) dirname))
+        dired-subdir-alist))))))
 
 (defun dired-restore-desktop-buffer (_file-name
                                      _buffer-name
[Message part 3 (text/plain, inline)]
WDYT?
-- 
Manuel Giraud

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Tue, 24 Oct 2023 11:58:02 GMT) Full text and rfc822 format available.

Message #56 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Tue, 24 Oct 2023 14:56:37 +0300
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: 66697 <at> debbugs.gnu.org
> Date: Tue, 24 Oct 2023 11:21:21 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> 
> [...]
> 
> > Doesn't this tell that the problem is in dired.el, not in desktop.el?
> > The problematic call comes from dired-desktop-buffer-misc-data, not
> > from desktop.el.  So it's dired-desktop-buffer-misc-data that needs to
> > be fixed.
> 
> So I work a bit on 'dired-desktop-buffer-misc-data' and have the
> following solution:

Sounds right, but don't you get byte-compiler warnings about
desktop-files-not-to-save not being known?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Tue, 24 Oct 2023 12:02:01 GMT) Full text and rfc822 format available.

Message #59 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Tue, 24 Oct 2023 14:00:36 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

>> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
>> Cc: 66697 <at> debbugs.gnu.org
>> Date: Tue, 24 Oct 2023 11:21:21 +0200
>> 
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>> 
>> 
>> [...]
>> 
>> > Doesn't this tell that the problem is in dired.el, not in desktop.el?
>> > The problematic call comes from dired-desktop-buffer-misc-data, not
>> > from desktop.el.  So it's dired-desktop-buffer-misc-data that needs to
>> > be fixed.
>> 
>> So I work a bit on 'dired-desktop-buffer-misc-data' and have the
>> following solution:
>
> Sounds right, but don't you get byte-compiler warnings about
> desktop-files-not-to-save not being known?

I haven't properly built Emacs with this, yet.  I'll try and report.
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Tue, 24 Oct 2023 13:20:01 GMT) Full text and rfc822 format available.

Message #62 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Tue, 24 Oct 2023 15:18:47 +0200
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

[...]

> Sounds right, but don't you get byte-compiler warnings about
> desktop-files-not-to-save not being known?

I did not get a warning about desktop-files-not-to-save but I get one
about shadowing dired-directory.  So I fixed the patch with this new
one.
[0001-Fix-desktop-save-on-remote-dired-bug-66697.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
-- 
Manuel Giraud

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Tue, 31 Oct 2023 21:15:02 GMT) Full text and rfc822 format available.

Message #65 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Tue, 31 Oct 2023 22:14:18 +0100
Manuel Giraud <manuel <at> ledu-giraud.fr> writes:

> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> [...]
>
>> Sounds right, but don't you get byte-compiler warnings about
>> desktop-files-not-to-save not being known?
>
> I did not get a warning about desktop-files-not-to-save but I get one
> about shadowing dired-directory.  So I fixed the patch with this new
> one.

Hi Eli,

Do you think you could commit it on master?
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Wed, 01 Nov 2023 03:30:02 GMT) Full text and rfc822 format available.

Message #68 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Wed, 01 Nov 2023 05:28:37 +0200
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: 66697 <at> debbugs.gnu.org
> Date: Tue, 31 Oct 2023 22:14:18 +0100
> 
> Manuel Giraud <manuel <at> ledu-giraud.fr> writes:
> 
> > Eli Zaretskii <eliz <at> gnu.org> writes:
> >
> > [...]
> >
> >> Sounds right, but don't you get byte-compiler warnings about
> >> desktop-files-not-to-save not being known?
> >
> > I did not get a warning about desktop-files-not-to-save but I get one
> > about shadowing dired-directory.  So I fixed the patch with this new
> > one.
> 
> Hi Eli,
> 
> Do you think you could commit it on master?

It's on my todo, waiting for possible comments by others.  No need to
ping me yet, since you posted your final version just a few days ago.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Wed, 01 Nov 2023 10:22:01 GMT) Full text and rfc822 format available.

Message #71 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Wed, 01 Nov 2023 11:20:47 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

[...]

> It's on my todo, waiting for possible comments by others.  No need to
> ping me yet, since you posted your final version just a few days ago.

Alright and sorry for this.  What would be a good ping delay?
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Wed, 01 Nov 2023 12:17:01 GMT) Full text and rfc822 format available.

Message #74 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Wed, 01 Nov 2023 14:15:45 +0200
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: 66697 <at> debbugs.gnu.org
> Date: Wed, 01 Nov 2023 11:20:47 +0100
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> [...]
> 
> > It's on my todo, waiting for possible comments by others.  No need to
> > ping me yet, since you posted your final version just a few days ago.
> 
> Alright and sorry for this.  What would be a good ping delay?

After at least two weeks have passed, or thereabouts.




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 04 Nov 2023 08:07:01 GMT) Full text and rfc822 format available.

Notification sent to Manuel Giraud <manuel <at> ledu-giraud.fr>:
bug acknowledged by developer. (Sat, 04 Nov 2023 08:07:01 GMT) Full text and rfc822 format available.

Message #79 received at 66697-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 66697-done <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Sat, 04 Nov 2023 10:05:52 +0200
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: 66697 <at> debbugs.gnu.org
> Date: Tue, 24 Oct 2023 15:18:47 +0200
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> [...]
> 
> > Sounds right, but don't you get byte-compiler warnings about
> > desktop-files-not-to-save not being known?
> 
> I did not get a warning about desktop-files-not-to-save but I get one
> about shadowing dired-directory.  So I fixed the patch with this new
> one.

Thanks, installed on master, and closing the bug.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 02 Dec 2023 12:24:13 GMT) Full text and rfc822 format available.

bug unarchived. Request was from Manuel Giraud <manuel <at> ledu-giraud.fr> to control <at> debbugs.gnu.org. (Fri, 08 Dec 2023 14:31:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Fri, 08 Dec 2023 16:03:02 GMT) Full text and rfc822 format available.

Message #86 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Andy Moreton <andrewjmoreton <at> gmail.com>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>, Eli Zaretskii <eliz <at> gnu.org>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Fri, 8 Dec 2023 16:02:29 +0000
On 08/12/2023 14:22, Manuel Giraud wrote:
> Hi Andy,
>
> Could you try the attached patch to see if it fixes your issue?  Thanks.

Yes, that works. Thanks for the fix.

    AndyM





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Sat, 09 Dec 2023 10:07:01 GMT) Full text and rfc822 format available.

Message #89 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: andrewjmoreton <at> gmail.com, 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Sat, 09 Dec 2023 12:06:13 +0200
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: 66697 <at> debbugs.gnu.org, Andy Moreton <andrewjmoreton <at> gmail.com>
> Date: Fri, 08 Dec 2023 15:22:54 +0100
> 
> Hi Andy,
> 
> Could you try the attached patch to see if it fixes your issue?  Thanks.
>  (defun dired-desktop-buffer-misc-data (dirname)
>    "Auxiliary information to be saved in desktop file."
> -  (when (and (stringp desktop-files-not-to-save)
> -             (dired-desktop-save-p))
> +  (when (or (null desktop-files-not-to-save)
> +            (and (stringp desktop-files-not-to-save)
> +                 (dired-desktop-save-p)))
>      (cons
>       ;; Value of `dired-directory'.
>       (if (consp dired-directory)

Thanks, but I wonder whether a better way would be to modify
dired-desktop-save-p such that it handled correctly non-string values
of desktop-files-not-to-save?  That would make the handling of this
variable more local, which is better for maintenance, I think.

WDYT?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Sat, 09 Dec 2023 12:06:02 GMT) Full text and rfc822 format available.

Message #92 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: andrewjmoreton <at> gmail.com, 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Sat, 09 Dec 2023 13:05:24 +0100
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

[...]

> Thanks, but I wonder whether a better way would be to modify
> dired-desktop-save-p such that it handled correctly non-string values
> of desktop-files-not-to-save?  That would make the handling of this
> variable more local, which is better for maintenance, I think.
>
> WDYT?

Sure.  Good idea.  Here is a new version.
-- 
Manuel Giraud
[0001-Fix-desktop-save-for-dired-buffers-bug-66697.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Sat, 09 Dec 2023 13:18:02 GMT) Full text and rfc822 format available.

Message #95 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: andrewjmoreton <at> gmail.com, 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Sat, 09 Dec 2023 15:16:50 +0200
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: 66697 <at> debbugs.gnu.org,  andrewjmoreton <at> gmail.com
> Date: Sat, 09 Dec 2023 13:05:24 +0100
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> [...]
> 
> > Thanks, but I wonder whether a better way would be to modify
> > dired-desktop-save-p such that it handled correctly non-string values
> > of desktop-files-not-to-save?  That would make the handling of this
> > variable more local, which is better for maintenance, I think.
> >
> > WDYT?
> 
> Sure.  Good idea.  Here is a new version.

Thanks, installed.

Andy, please test.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Sat, 09 Dec 2023 15:26:02 GMT) Full text and rfc822 format available.

Message #98 received at 66697 <at> debbugs.gnu.org (full text, mbox):

From: Andy Moreton <andrewjmoreton <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>, Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 66697 <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Sat, 9 Dec 2023 15:24:54 +0000
On 09/12/2023 13:16, Eli Zaretskii wrote:
>> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
>> Cc: 66697 <at> debbugs.gnu.org,  andrewjmoreton <at> gmail.com
>> Date: Sat, 09 Dec 2023 13:05:24 +0100
>>
>> Eli Zaretskii <eliz <at> gnu.org> writes:
>>
>> [...]
>>
>>> Thanks, but I wonder whether a better way would be to modify
>>> dired-desktop-save-p such that it handled correctly non-string values
>>> of desktop-files-not-to-save?  That would make the handling of this
>>> variable more local, which is better for maintenance, I think.
>>>
>>> WDYT?
>> Sure.  Good idea.  Here is a new version.
> Thanks, installed.
>
> Andy, please test.

All good, and the new patch is a cleaner fix.

Thanks,

    AndyM





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#66697; Package emacs. (Sat, 09 Dec 2023 15:47:01 GMT) Full text and rfc822 format available.

Message #101 received at 66697-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Andy Moreton <andrewjmoreton <at> gmail.com>
Cc: manuel <at> ledu-giraud.fr, 66697-done <at> debbugs.gnu.org
Subject: Re: bug#66697: 30.0.50; [PATCH] desktop-save-mode with expiring
 remote buffers
Date: Sat, 09 Dec 2023 17:45:33 +0200
> Date: Sat, 9 Dec 2023 15:24:54 +0000
> Cc: 66697 <at> debbugs.gnu.org
> From: Andy Moreton <andrewjmoreton <at> gmail.com>
> 
> On 09/12/2023 13:16, Eli Zaretskii wrote:
> >> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> >> Cc: 66697 <at> debbugs.gnu.org,  andrewjmoreton <at> gmail.com
> >> Date: Sat, 09 Dec 2023 13:05:24 +0100
> >>
> >> Eli Zaretskii <eliz <at> gnu.org> writes:
> >>
> >> [...]
> >>
> >>> Thanks, but I wonder whether a better way would be to modify
> >>> dired-desktop-save-p such that it handled correctly non-string values
> >>> of desktop-files-not-to-save?  That would make the handling of this
> >>> variable more local, which is better for maintenance, I think.
> >>>
> >>> WDYT?
> >> Sure.  Good idea.  Here is a new version.
> > Thanks, installed.
> >
> > Andy, please test.
> 
> All good, and the new patch is a cleaner fix.

Thanks, closing.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 07 Jan 2024 12:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 166 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.