changeset 21721:46ffb5302c40

(Fcall_interactively): Truncate command-history here.
author Richard M. Stallman <rms@gnu.org>
date Thu, 23 Apr 1998 21:18:18 +0000
parents b1ee274d921b
children 5b26268ee997
files src/callint.c
diffstat 1 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/callint.c	Thu Apr 23 18:00:06 1998 +0000
+++ b/src/callint.c	Thu Apr 23 21:18:18 1998 +0000
@@ -35,6 +35,8 @@
 Lisp_Object Qcall_interactively;
 Lisp_Object Vcommand_history;
 
+extern Lisp_Object Vhistory_length;
+
 Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
 Lisp_Object Qenable_recursive_minibuffers;
 
@@ -345,6 +347,14 @@
 	    }
 	  Vcommand_history
 	    = Fcons (Fcons (function, values), Vcommand_history);
+
+	  /* Don't keep command history around forever.  */
+	  if (NUMBERP (Vhistory_length) && XINT (Vhistory_length) > 0)
+	    {
+	      teml = Fnthcdr (Vhistory_length, Vcommand_history);
+	      if (CONSP (teml))
+		XCONS (teml)->cdr = Qnil;
+	    }
 	}
       single_kboard_state ();
       return apply1 (function, specs);
@@ -728,6 +738,13 @@
 	}
       Vcommand_history = Fcons (Flist (count + 1, visargs),
 				Vcommand_history);
+      /* Don't keep command history around forever.  */
+      if (NUMBERP (Vhistory_length) && XINT (Vhistory_length) > 0)
+	{
+	  teml = Fnthcdr (Vhistory_length, Vcommand_history);
+	  if (CONSP (teml))
+	    XCONS (teml)->cdr = Qnil;
+	}
     }
 
   /* If we used a marker to hold point, mark, or an end of the region,