history list symbol. The variable @code{history-delete-duplicates}
specifies whether to delete duplicates in history.
-@defun add-to-history history-var newelt &optional maxelt
-This function adds a new element @var{newelt} to the history list
-stored in the variable @var{history-var}, and returns the updated
-history list. By default, the list length is limited by the value
-specified by @code{history-length} (described below), but the optional
-argument @var{maxelt} overrides that. The possible values of
+@defun add-to-history history-var newelt &optional maxelt keep-all
+This function adds a new element @var{newelt}, if non-empty, to the
+history list stored in the variable @var{history-var}, and returns the
+updated history list. By default, the list length is limited by the
+value specified by @code{history-length} (described below), but the
+optional argument @var{maxelt} overrides that. The possible values of
@var{maxelt} have the same meaning as the values of
@code{history-length}.
-Duplicate members are removed from the history list, unless
-@code{history-delete-duplicates} is @code{nil}.
+Duplicate members are removed from the history list, if
+@code{history-delete-duplicates} is non-@code{nil}.
+
+If @var{keep-all} is non-@code{nil}, even an empty or duplicate
+@var{newelt} element is added to the history list.
@end defun
@defvar history-length