]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/desktop.el (desktop-read): With argument, ask the user for DIRNAME.
authorJuanma Barranquero <lekktu@gmail.com>
Thu, 26 Sep 2019 10:15:36 +0000 (12:15 +0200)
committerJuanma Barranquero <lekktu@gmail.com>
Thu, 26 Sep 2019 10:17:20 +0000 (12:17 +0200)
* etc/NEWS: Document it.

etc/NEWS
lisp/desktop.el

index 9a0b6333e4335dd2567ffaadd81f3874e11f2e70..79e9655350aaf465b97dbea3b4c58331f259b0a3 100644 (file)
--- 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.
index 59610a128a344fc29fd85537407e8a44b906186b..498f769bd3265e46fc3a178b4fe0c629cc0d2f1c 100644 (file)
@@ -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