diff options
author | Richard M. Stallman <rms@gnu.org> | 1998-04-23 21:18:18 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1998-04-23 21:18:18 +0000 |
commit | 225c215740bc2e03d05ba473996c6edcc975bba6 (patch) | |
tree | ebddef8f3d1dedc784647e399001978f9fd6087f /src/callint.c | |
parent | 69b3c6c7ea856083e2512a185a9061cfea8c825c (diff) | |
download | emacs-225c215740bc2e03d05ba473996c6edcc975bba6.tar.gz |
(Fcall_interactively): Truncate command-history here.
Diffstat (limited to 'src/callint.c')
-rw-r--r-- | src/callint.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/callint.c b/src/callint.c index cc522c3f76c..1faa448c117 100644 --- a/src/callint.c +++ b/src/callint.c @@ -35,6 +35,8 @@ Lisp_Object Vcurrent_prefix_arg, Qminus, Qplus; 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 @@ Otherwise, this is done only if an arg is read using the minibuffer.") } 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 @@ Otherwise, this is done only if an arg is read using the minibuffer.") } 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, |