diff options
author | Andy Wingo <wingo@pobox.com> | 2010-07-10 10:44:29 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-07-10 10:44:29 +0200 |
commit | a38dd31ffc2855cd3c2cbe4659a6cc6398d07cc5 (patch) | |
tree | 060f1e6e91722335c7352f0a8b7945fdebf7bb21 | |
parent | a85f90f5ac5c3c5f830e295c0ca7b006141b1a83 (diff) | |
download | guile-a38dd31ffc2855cd3c2cbe4659a6cc6398d07cc5.tar.gz |
add utils to turn value history on and off, and to clear it
* module/ice-9/history.scm (enable-value-history!)
(disable-value-history!, clear-value-history!): New exports.
-rw-r--r-- | module/ice-9/history.scm | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/module/ice-9/history.scm b/module/ice-9/history.scm index e9097c2cc..7c5998861 100644 --- a/module/ice-9/history.scm +++ b/module/ice-9/history.scm @@ -1,4 +1,4 @@ -;;;; Copyright (C) 2000, 2001, 2004, 2006 Free Software Foundation, Inc. +;;;; Copyright (C) 2000, 2001, 2004, 2006, 2010 Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public @@ -17,10 +17,14 @@ ;;;; A simple value history support -(define-module (ice-9 history)) +(define-module (ice-9 history) + #:export (enable-value-history! disable-value-history! + clear-value-history!)) (process-define-module '((value-history))) +(define value-history-enabled? #f) + (define (use-value-history x) (module-use! (current-module) (resolve-interface '(value-history)))) @@ -37,5 +41,23 @@ (module-export! history (list s)) (set! count c)))))) -(add-hook! before-eval-hook use-value-history) -(add-hook! before-print-hook save-value-history) +(define (enable-value-history!) + (if (not value-history-enabled?) + (begin + (add-hook! before-eval-hook use-value-history) + (add-hook! before-print-hook save-value-history) + (set! value-history-enabled? #t)))) + +(define (disable-value-history!) + (if value-history-enabled? + (begin + (remove-hook! before-eval-hook use-value-history) + (remove-hook! before-print-hook save-value-history) + (set! value-history-enabled? #f)))) + +(define (clear-value-history!) + (let ((history (resolve-module '(value-history)))) + (hash-clear! (module-obarray history)) + (hash-clear! (module-obarray (module-public-interface history))))) + +(enable-value-history!) |