From e59fa9adb3e9e2ec7993267667c6a31d2cf57fdd Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Sat, 22 Feb 2014 03:10:49 +0100 Subject: [PATCH] lisp/desktop.el: Do not fail when desktop-files-not-to-save is nil. --- lisp/ChangeLog | 6 ++++++ lisp/desktop.el | 36 +++++++++++++++++++----------------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 82c24f11643..6ca16625826 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-02-22 Juanma Barranquero + + * desktop.el (desktop-save-buffer-p): Do not fail when + desktop-files-not-to-save is nil. Return t for true result + as the doc says. + 2014-02-22 Daniel Colascione * net/secrets.el (secrets-create-item,secrets-search-items): Check diff --git a/lisp/desktop.el b/lisp/desktop.el index 6ec3ceed9df..69c17015030 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el @@ -878,23 +878,25 @@ FILENAME is the visited file name, BUFNAME is the buffer name, and MODE is the major mode. \n\(fn FILENAME BUFNAME MODE)" (let ((case-fold-search nil) - dired-skip) - (and (not (and (stringp desktop-buffers-not-to-save) - (not filename) - (string-match-p desktop-buffers-not-to-save bufname))) - (not (memq mode desktop-modes-not-to-save)) - ;; FIXME this is broken if desktop-files-not-to-save is nil. - (or (and filename - (stringp desktop-files-not-to-save) - (not (string-match-p desktop-files-not-to-save filename))) - (and (memq mode '(dired-mode vc-dir-mode)) - (with-current-buffer bufname - (not (setq dired-skip - (string-match-p desktop-files-not-to-save - default-directory))))) - (and (null filename) - (null dired-skip) ; bug#5755 - (with-current-buffer bufname desktop-save-buffer)))))) + (no-regexp-to-check (not (stringp desktop-files-not-to-save))) + dired-skip) + (and (or filename + (not (stringp desktop-buffers-not-to-save)) + (not (string-match-p desktop-buffers-not-to-save bufname))) + (not (memq mode desktop-modes-not-to-save)) + (or (and filename + (or no-regexp-to-check + (not (string-match-p desktop-files-not-to-save filename)))) + (and (memq mode '(dired-mode vc-dir-mode)) + (or no-regexp-to-check + (not (setq dired-skip + (with-current-buffer bufname + (string-match-p desktop-files-not-to-save + default-directory)))))) + (and (null filename) + (null dired-skip) ; bug#5755 + (with-current-buffer bufname desktop-save-buffer))) + t))) ;; ---------------------------------------------------------------------------- (defun desktop-file-name (filename dirname) -- 2.39.2