fixed searching bugs

new preferences
fixed load bugs

original commit: d44b20eb9934fe09d3a652f35401bf4c3d22cf0e
This commit is contained in:
Robby Findler 1997-05-26 01:37:01 +00:00
parent f577471106
commit 7e5c7231eb
4 changed files with 43 additions and 11 deletions

View File

@ -15,12 +15,18 @@
(mred:debug:printf 'invoke "mred:edit@")
(mred:preferences:set-preference-default 'mred:verify-change-format #f)
(mred:preferences:set-preference-default 'mred:verify-change-format #f
(lambda (x)
(or (not x)
(eq? x #t))))
(define-struct range (start end b/w-bitmap color))
(define-struct rectangle (left top width height b/w-bitmap color))
(mred:preferences:set-preference-default 'mred:auto-set-wrap? #f)
(mred:preferences:set-preference-default 'mred:auto-set-wrap? #f
(lambda (x)
(or (not x)
(eq? x #t))))
(define make-snip%
(let ([sl (make-object wx:style-list%)])

View File

@ -40,7 +40,10 @@
#t]
[else #f])))
(mred:preferences:set-preference-default 'mred:show-periods-in-dirlist #f)
(mred:preferences:set-preference-default 'mred:show-periods-in-dirlist #f
(lambda (x)
(or (not x)
(eq? x #t))))
(define finder-dialog%
(class mred:container:dialog-box% (save-mode? replace-ok? multi-mode?
@ -538,7 +541,11 @@
(mred:preferences:set-preference-default 'mred:file-dialogs
(if (eq? wx:platform 'unix)
'common
'std))
'std)
(lambda (x)
(or (eq? x 'common)
(eq? x 'std))))
(define put-file
(lambda args
(apply (case (mred:preferences:get-preference 'mred:file-dialogs)

View File

@ -44,7 +44,11 @@
(send keymap map-function key func))
(make-meta-prefix-list key))))
(mred:preferences:set-preference-default 'mred:delete-forward? (not (eq? wx:platform 'unix)))
(mred:preferences:set-preference-default 'mred:delete-forward?
(not (eq? wx:platform 'unix))
(lambda (x)
(or (not x)
(eq? x #t))))
; This installs the standard keyboard mapping
(define setup-global-keymap
@ -52,7 +56,10 @@
(let* ([rcs
(let ([last-checkin-string ""])
(mred:preferences:set-preference-default
'rcs-pathname (list "/usr/local/RCS/" "/usr/bin/" "/usr/local/bin/"))
'rcs-pathname (list "/usr/local/RCS/" "/usr/bin/" "/usr/local/bin/")
(lambda (x)
(and (list? x)
(andmap string? x))))
(lambda (edit event)
(let/ec k
(let* ([rcs-binaries (list "ci" "co" "rlog")]

View File

@ -24,6 +24,7 @@
(define-struct un/marshall (marshall unmarshall))
(define-struct marshalled (data))
(define-struct pref (value))
(define-struct default (value checker))
(define guard
(lambda (when p value thunk)
@ -83,14 +84,22 @@
((debug-info-handler))))))])
(cond
[(marshalled? ans)
(let* ([unmarshalled (unmarshall p ans)]
[default
(let* ([default-s
(hash-table-get
defaults p
(lambda ()
(error 'get-preference
"no default pref for: ~a~n"
p)))]
[default (default-value default-s)]
[checker (default-checker default-s)]
[unmarshalled (let ([unmarsh (unmarshall p ans)])
(if (checker unmarsh)
unmarsh
(begin
(printf "WARNING: ~s rejecting invalid pref ~s in favor of ~s~n"
p unmarsh default)
default)))]
[_ (mred:debug:printf 'prefs "get-preference checking callbacks: ~a to ~a"
p unmarshalled)]
[pref (if (check-callbacks p unmarshalled)
@ -140,16 +149,19 @@
(mred:debug:printf 'prefs "finished setting prefs to default values")))
(define set-preference-default
(lambda (p value)
(lambda (p value checker)
(mred:debug:printf 'prefs "setting default value for ~a to ~a" p value)
(hash-table-get preferences p
(lambda ()
(hash-table-put! preferences p (make-pref value))))
(hash-table-put! defaults p value)))
(hash-table-put! defaults p (make-default value checker))))
;; this is here becuase exit has to come before
;; prefs.ss in the loading order.
(set-preference-default 'mred:verify-exit #t)
(set-preference-default 'mred:verify-exit #t
(lambda (x)
(or (not x)
(eq? x #t))))
(define save-user-preferences
(let ([marshall-pref