From ab82bc04eb3d7a658c110befdb95636dba8d4c12 Mon Sep 17 00:00:00 2001 From: Casey Klein Date: Thu, 2 Dec 2010 11:19:46 -0600 Subject: [PATCH] Cleans up REPL history preference for (some?) old versions --- collects/drracket/private/main.rkt | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/collects/drracket/private/main.rkt b/collects/drracket/private/main.rkt index b8bfe6096a..1f02f3335e 100644 --- a/collects/drracket/private/main.rkt +++ b/collects/drracket/private/main.rkt @@ -6,8 +6,10 @@ mred framework mzlib/class - mzlib/list + racket/list racket/path + racket/file + racket/dict browser/external setup/plt-installer) @@ -453,6 +455,30 @@ (run-installer filename) #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 (λ () (void)) (λ ()