Hello all,
The same way it is possible to delete duplicates in minibuffer history, I
think it is also very useful to have the possibility to ignore entries
starting with space(s). The new variable `history-ignore-space' would take
care of this, being `nil' its defaut value.
Here you can see the changes needed.
Index: lisp/cus-start.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/cus-start.el,v
retrieving revision 1.136
diff -u -r1.136 cus-start.el
--- lisp/cus-start.el 27 Mar 2009 16:50:25 -0000 1.136
+++ lisp/cus-start.el 21 Jun 2009 21:17:22 -0000
@@ -216,6 +216,7 @@
(choice (const :tag "Infinite" t) integer)
"22.1")
(history-delete-duplicates minibuffer boolean "22.1")
+ (history-ignore-space minibuffer boolean "23.2")
(read-buffer-completion-ignore-case minibuffer boolean "23.1")
(minibuffer-prompt-properties
Index: src/minibuf.c
===================================================================
RCS file: /sources/emacs/emacs/src/minibuf.c,v
retrieving revision 1.362
diff -u -r1.362 minibuf.c
--- src/minibuf.c 17 Mar 2009 04:37:41 -0000 1.362
+++ src/minibuf.c 21 Jun 2009 21:17:26 -0000
@@ -61,6 +61,10 @@
int history_delete_duplicates;
+/* No entries starting with space. */
+
+int history_ignore_space;
+
/* Non-nil means add new input to history. */
Lisp_Object Vhistory_add_new_input;
@@ -776,6 +780,12 @@
else
histstring = Qnil;
+ /* Make sure the string must be strored. */
+ if (history_ignore_space
+ && !NILP (histstring)
+ && SREF (histstring,0) == ' ')
+ histstring = Qnil;
+
/* Add the value to the appropriate history list, if any. */
if (!NILP (Vhistory_add_new_input)
&& SYMBOLP (Vminibuffer_history_variable)
@@ -2156,6 +2166,12 @@
elements are deleted from the history list. */);
history_delete_duplicates = 0;
+ DEFVAR_BOOL ("history-ignore-space", &history_ignore_space,
+ doc: /* *Non-nil means to ignore entries starting with space.
+If set to t, elements starting with space are not stored into the
+history list. */);
+ history_ignore_space = 0;
+
DEFVAR_LISP ("history-add-new-input", &Vhistory_add_new_input,
doc: /* *Non-nil means to add new elements in history.
If set to nil, minibuffer reading functions don't add new elements to the
If you like the idea I can install them in the trunk for release 23.2.
-- Francesc Rocher