[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/subr.el
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/subr.el |
Date: |
Tue, 16 May 2006 11:19:39 +0000 |
Index: emacs/lisp/subr.el
diff -u emacs/lisp/subr.el:1.509 emacs/lisp/subr.el:1.510
--- emacs/lisp/subr.el:1.509 Wed May 10 01:58:37 2006
+++ emacs/lisp/subr.el Tue May 16 11:19:39 2006
@@ -1123,28 +1123,36 @@
(< oa ob)
oa)))))))
-(defun add-to-history (history-var newelt &optional maxelt)
+(defun add-to-history (history-var newelt &optional maxelt keep-all)
"Add NEWELT to the history list stored in the variable HISTORY-VAR.
Return the new history list.
If MAXELT is non-nil, it specifies the maximum length of the history.
Otherwise, the maximum history length is the value of the `history-length'
property on symbol HISTORY-VAR, if set, or the value of the `history-length'
variable.
-Remove duplicates of NEWELT unless `history-delete-duplicates' is nil."
+Remove duplicates of NEWELT if `history-delete-duplicates' is non-nil.
+If optional fourth arg KEEP-ALL is non-nil, add NEWELT to history even
+if it is empty or a duplicate."
(unless maxelt
(setq maxelt (or (get history-var 'history-length)
history-length)))
(let ((history (symbol-value history-var))
tail)
- (if history-delete-duplicates
- (setq history (delete newelt history)))
- (setq history (cons newelt history))
- (when (integerp maxelt)
- (if (= 0 maxelt)
- (setq history nil)
- (setq tail (nthcdr (1- maxelt) history))
- (when (consp tail)
- (setcdr tail nil))))
+ (when (and (listp history)
+ (or keep-all
+ (not (stringp newelt))
+ (> (length newelt) 0))
+ (or keep-all
+ (not (equal (car history) newelt))))
+ (if history-delete-duplicates
+ (delete newelt history))
+ (setq history (cons newelt history))
+ (when (integerp maxelt)
+ (if (= 0 maxelt)
+ (setq history nil)
+ (setq tail (nthcdr (1- maxelt) history))
+ (when (consp tail)
+ (setcdr tail nil)))))
(set history-var history)))
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Kim F. Storm, 2006/05/05
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Nick Roberts, 2006/05/09
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Miles Bader, 2006/05/09
- [Emacs-diffs] Changes to emacs/lisp/subr.el,
Kim F. Storm <=
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Alan Mackenzie, 2006/05/24
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Richard M. Stallman, 2006/05/24
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Richard M. Stallman, 2006/05/24
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Richard M. Stallman, 2006/05/24
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Richard M. Stallman, 2006/05/28
- [Emacs-diffs] Changes to emacs/lisp/subr.el, Richard M. Stallman, 2006/05/29