]> git.eshelyaron.com Git - emacs.git/commitdiff
* fileio.c (history_delete_duplicates): Remove unused declaration.
authorDan Nicolaescu <dann@ics.uci.edu>
Wed, 15 Apr 2009 00:08:23 +0000 (00:08 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Wed, 15 Apr 2009 00:08:23 +0000 (00:08 +0000)
* callint.c (history_delete_duplicates): New declaration.
(Fcall_interactively): Remove command history duplicates when
history_delete_duplicates is true.

src/ChangeLog
src/callint.c
src/fileio.c

index 5290d7ba92b0f29eaa125924b48b02776797e2d1..e9901dfa1bf522c99014a42232eaca0a3c102a63 100644 (file)
@@ -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.
index 3641fbc5b779057f86fd991554763d602e465710..074f9c0fc5b3fbaf4d9ccf1777b3f3852e386187 100644 (file)
@@ -42,6 +42,7 @@ Lisp_Object Vcommand_history;
 
 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 @@ invoke it.  If KEYS is omitted or nil, the return value of
        {
          /* 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)
index 0bdbe9f9a46387d2c9d49b4c280cb62a178fc292..ed5c09bc8403c5f54c65727eed3c81c9be00f0f6 100644 (file)
@@ -221,8 +221,6 @@ extern int minibuf_level;
 
 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.