2009-07-18 Eli Zaretskii <eliz@gnu.org>
+ * desktop.el (desktop-buffers-not-to-save): Default value is nil.
+ Accept nil in addition to a regexp.
+ (desktop-files-not-to-save): Add "(ftp)$" to the default regexp.
+ Accept nil in addition to a regexp.
+ (desktop-save-buffer-p): Don't use desktop-buffers-not-to-save for
+ buffers that have an associated file. Handle nil values of
+ desktop-buffers-not-to-save and desktop-files-not-to-save.
+ (Bug#3833)
+
* term/pc-win.el (x-selection-owner-p, x-own-selection-internal)
(x-disown-selection-internal): New functions.
:type '(repeat symbol)
:group 'desktop)
-;; We skip .log files because they are normally temporary.
-;; (ftp) files because they require passwords and whatnot.
-(defcustom desktop-buffers-not-to-save
- "\\(^nn\\.a[0-9]+\\|(ftp)\\)$"
+(defcustom desktop-buffers-not-to-save nil
"Regexp identifying buffers that are to be excluded from saving."
- :type 'regexp
+ :type '(choice (const :tag "None" nil)
+ regexp)
:group 'desktop)
;; Skip tramp and ange-ftp files
(defcustom desktop-files-not-to-save
- "^/[^/:]*:"
+ "\\(^/[^/:]*:\\|(ftp)$\\)"
"Regexp identifying files whose buffers are to be excluded from saving."
- :type 'regexp
+ :type '(choice (const :tag "None" nil)
+ regexp)
:group 'desktop)
;; We skip TAGS files to save time (tags-file-name is saved instead).
MODE is the major mode.
\n\(fn FILENAME BUFNAME MODE)"
(let ((case-fold-search nil))
- (and (not (string-match desktop-buffers-not-to-save bufname))
+ (and (not (and (stringp desktop-buffers-not-to-save)
+ (not filename)
+ (string-match desktop-buffers-not-to-save bufname)))
(not (memq mode desktop-modes-not-to-save))
(or (and filename
+ (stringp desktop-files-not-to-save)
(not (string-match desktop-files-not-to-save filename)))
(and (eq mode 'dired-mode)
(with-current-buffer bufname