From 60bf825cde9fff374ff771907690646d5c72b9c2 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Mon, 24 Nov 2003 19:35:56 +0000 Subject: [PATCH] .. original commit: 5dbca568862f77c3547a7f860e9d3564730b04b8 --- collects/framework/private/preferences.ss | 25 +++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/collects/framework/private/preferences.ss b/collects/framework/private/preferences.ss index 34168f97..fe4eb153 100644 --- a/collects/framework/private/preferences.ss +++ b/collects/framework/private/preferences.ss @@ -81,15 +81,17 @@ (reset-changed))))) ;; reading in changes - (let* ([mod (file-or-directory-modify-seconds (find-system-path 'pref-file))]) - (when (or (not last-time-read) - (last-time-read . < . mod)) - (let* ([failed? #f] - [new-stuff (get-preference main-preferences-symbol (lambda () (set! failed? #t)))]) - (unless failed? - (set! last-time-read mod) - (install-stashed-preferences new-stuff '()) - (reset-changed)))))) + (let* ([filename (find-system-path 'pref-file)]) + (when (file-exists? filename) + (let ([mod (file-or-directory-modify-seconds filename)]) + (when (or (not last-time-read) + (last-time-read . < . mod)) + (let* ([failed? #f] + [new-stuff (get-preference main-preferences-symbol (lambda () (set! failed? #t)))]) + (unless failed? + (set! last-time-read mod) + (install-stashed-preferences new-stuff '()) + (reset-changed)))))))) (define guard (lambda (when p value thunk failure) @@ -378,8 +380,9 @@ ;; the preferences, things break) (define (get-disk-prefs fail) (let/ec k - (let ([mod (file-or-directory-modify-seconds (find-system-path 'pref-file))] - [sexp (get-preference main-preferences-symbol (lambda () (k (fail))))]) + (let* ([filename (find-system-path 'pref-file)] + [mod (and (file-exists? filename) (file-or-directory-modify-seconds filename))] + [sexp (get-preference main-preferences-symbol (lambda () (k (fail))))]) (set! last-time-read mod) sexp)))