From: Juanma Barranquero Date: Thu, 26 Sep 2019 10:15:36 +0000 (+0200) Subject: * lisp/desktop.el (desktop-read): With argument, ask the user for DIRNAME. X-Git-Tag: emacs-27.0.90~1430 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=13a15a3a5a123e0e3377f41974ce12af69c8d5e0;p=emacs.git * lisp/desktop.el (desktop-read): With argument, ask the user for DIRNAME. * etc/NEWS: Document it. --- diff --git a/etc/NEWS b/etc/NEWS index 9a0b6333e43..79e9655350a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -542,6 +542,11 @@ network connection information (in addition to the host name). ** The 'cl' package is now officially deprecated in favor of 'cl-lib'. +--- +** desktop +*** When called interactively with a prefix arg 'C-u', 'desktop-read' +now prompts the user for the directory containing the desktop file. + +++ ** winner *** A new variable, 'winner-boring-buffers-regexp', has been added. diff --git a/lisp/desktop.el b/lisp/desktop.el index 59610a128a3..498f769bd32 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -1191,17 +1191,18 @@ being set (usually, by reading it from the desktop)." (defvar desktop-buffer-ok-count) (defvar desktop-buffer-fail-count) -;; FIXME Interactively, this should have the option to prompt for dirname. ;;;###autoload -(defun desktop-read (&optional dirname) +(defun desktop-read (&optional dirname ask) "Read and process the desktop file in directory DIRNAME. Look for a desktop file in DIRNAME, or if DIRNAME is omitted, look in directories listed in `desktop-path'. If a desktop file is found, it is processed and `desktop-after-read-hook' is run. If no desktop file is found, clear the desktop and run `desktop-no-desktop-file-hook'. +Interactively, with prefix arg \\[universal-argument], ask for DIRNAME. This function is a no-op when Emacs is running in batch mode. -It returns t if a desktop file was loaded, nil otherwise." - (interactive) +It returns t if a desktop file was loaded, nil otherwise. +\n(fn DIRNAME)" + (interactive "i\nP") (unless noninteractive (setq desktop-dirname (file-name-as-directory @@ -1209,6 +1210,8 @@ It returns t if a desktop file was loaded, nil otherwise." (or ;; If DIRNAME is specified, use it. (and (< 0 (length dirname)) dirname) + ;; Else, with a prefix arg, ask for a directory name. + (and ask (read-directory-name "Directory for desktop file: " nil nil t)) ;; Otherwise search desktop file in desktop-path. (let ((dirs desktop-path)) (while (and dirs