changeset 102973:9980dd970cf9

* fileio.c (history_delete_duplicates): Remove unused declaration. * callint.c (history_delete_duplicates): New declaration. (Fcall_interactively): Remove command history duplicates when history_delete_duplicates is true.
author Dan Nicolaescu <dann@ics.uci.edu>
date Wed, 15 Apr 2009 00:08:23 +0000
parents 9446d1875bbd
children 04e540897dd1
files src/ChangeLog src/callint.c src/fileio.c
diffstat 3 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Apr 14 21:54:49 2009 +0000
+++ b/src/ChangeLog	Wed Apr 15 00:08:23 2009 +0000
@@ -1,3 +1,11 @@
+2009-04-15  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* fileio.c (history_delete_duplicates): Remove unused declaration.
+
+	* callint.c (history_delete_duplicates): New declaration.
+	(Fcall_interactively): Remove command history duplicates when
+	history_delete_duplicates is true.
+
 2009-04-14  Eli Zaretskii  <eliz@gnu.org>
 
 	* buffer.c (syms_of_buffer) <line-spacing>: Doc fix.
--- a/src/callint.c	Tue Apr 14 21:54:49 2009 +0000
+++ b/src/callint.c	Wed Apr 15 00:08:23 2009 +0000
@@ -42,6 +42,7 @@
 
 extern Lisp_Object Vhistory_length;
 extern Lisp_Object Vthis_original_command, real_this_command;
+extern int history_delete_duplicates;
 
 Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
 Lisp_Object Qenable_recursive_minibuffers;
@@ -366,12 +367,15 @@
 	{
 	  /* We should record this command on the command history.  */
 	  Lisp_Object values;
+	  Lisp_Object this_cmd;
 	  /* Make a copy of the list of values, for the command history,
 	     and turn them into things we can eval.  */
 	  values = quotify_args (Fcopy_sequence (specs));
 	  fix_command (input, values);
-	  Vcommand_history
-	    = Fcons (Fcons (function, values), Vcommand_history);
+	  this_cmd = Fcons (function, values);
+	  if (history_delete_duplicates)
+	    Vcommand_history = Fdelete (this_cmd, Vcommand_history);
+	  Vcommand_history = Fcons (this_cmd, Vcommand_history);
 
 	  /* Don't keep command history around forever.  */
 	  if (INTEGERP (Vhistory_length) && XINT (Vhistory_length) > 0)
--- a/src/fileio.c	Tue Apr 14 21:54:49 2009 +0000
+++ b/src/fileio.c	Wed Apr 15 00:08:23 2009 +0000
@@ -221,8 +221,6 @@
 
 extern int minibuffer_auto_raise;
 
-extern int history_delete_duplicates;
-
 /* These variables describe handlers that have "already" had a chance
    to handle the current operation.