Cleans up REPL history preference for (some?) old versions

This commit is contained in:
Casey Klein 2010-12-02 11:19:46 -06:00
parent fad4771167
commit ab82bc04eb

View File

@ -6,8 +6,10 @@
mred mred
framework framework
mzlib/class mzlib/class
mzlib/list racket/list
racket/path racket/path
racket/file
racket/dict
browser/external browser/external
setup/plt-installer) setup/plt-installer)
@ -453,6 +455,30 @@
(run-installer filename) (run-installer filename)
#f)) #f))
;; trim old console-previous-exprs preferences to compenstate
;; for a bug that let it grow without bound
(let* ([max-len 30]
[trim (λ (exprs save)
(when (list? exprs)
(let ([len (length exprs)])
(when (> len max-len)
(save (drop exprs (- len max-len)))))))])
(let ([framework-prefs (get-preference 'plt:framework-prefs)])
(when (and (list? framework-prefs)
(andmap pair? framework-prefs))
(let ([exprs-pref (assq 'drscheme:console-previous-exprs framework-prefs)])
(when exprs-pref
(trim (second exprs-pref)
(λ (trimmed)
(put-preferences (list 'plt:framework-prefs)
(list (dict-set framework-prefs 'drscheme:console-previous-exprs (list trimmed)))
void)))))))
(trim (get-preference 'plt:framework-pref:drscheme:console-previous-exprs)
(λ (trimmed)
(put-preferences (list 'plt:framework-pref:drscheme:console-previous-exprs)
(list trimmed)
void))))
(drracket:tools:load/invoke-all-tools (drracket:tools:load/invoke-all-tools
(λ () (void)) (λ () (void))
(λ () (λ ()