Mercurial > emacs
changeset 13154:f86e18ff3736
(desktop-outvar): Support truncation.
(desktop-globals-to-save): Doc fix.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 08 Oct 1995 19:37:04 +0000 |
parents | c9694633f7ca |
children | 0b8e0559dcee |
files | lisp/desktop.el |
diffstat | 1 files changed, 26 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/desktop.el Sun Oct 08 19:30:41 1995 +0000 +++ b/lisp/desktop.el Sun Oct 08 19:37:04 1995 +0000 @@ -3,7 +3,6 @@ ;; Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> -;; Version: 2.10 ;; Keywords: customization ;; Favourite-brand-of-beer: None, I hate beer. @@ -124,7 +123,11 @@ 'register-alist ;; 'desktop-globals-to-save ; Itself! ) - "List of global variables to save when killing Emacs.") + "List of global variables to save when killing Emacs. +An element may be variable name (a symbol) +or a cons cell of the form (VAR . MAX-SIZE), +which means to truncate VAR's value to at most MAX-SIZE elements +\(if the value is a list) before saving the value.") (defvar desktop-locals-to-save (list 'desktop-locals-to-save ; Itself! Think it over. @@ -309,14 +312,27 @@ (concat "'" txt) txt))) ;; ---------------------------------------------------------------------------- -(defun desktop-outvar (var) - "Output a setq statement for VAR to the desktop file." - (if (boundp var) - (insert "(setq " - (symbol-name var) - " " - (desktop-value-to-string (symbol-value var)) - ")\n"))) +(defun desktop-outvar (varspec) + "Output a setq statement for variable VAR to the desktop file. +The argument VARSPEC may be the variable name VAR (a symbol), +or a cons cell of the form (VAR . MAX-SIZE), +which means to truncate VAR's value to at most MAX-SIZE elements +\(if the value is a list) before saving the value." + (let (var size) + (if (consp varspec) + (setq var (car varspec) size (cdr varspec)) + (setq var varspec)) + (if (boundp var) + (progn + (if (and (integerp size) + (> size 0) + (listp (eval var))) + (desktop-truncate (eval var) size)) + (insert "(setq " + (symbol-name var) + " " + (desktop-value-to-string (symbol-value var)) + ")\n"))))) ;; ---------------------------------------------------------------------------- (defun desktop-save-buffer-p (filename bufname mode &rest dummy) "Return t if the desktop should record a particular buffer for next startup.