From f86e4e542cd070862d5b2e8c971c33bc118e1e11 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 8 Oct 2009 16:55:06 +0000 Subject: [PATCH] svn: r16283 --- collects/framework/private/keymap.ss | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/collects/framework/private/keymap.ss b/collects/framework/private/keymap.ss index efe7b5d8e4..cc37d40697 100644 --- a/collects/framework/private/keymap.ss +++ b/collects/framework/private/keymap.ss @@ -29,10 +29,9 @@ [sexp (and (file-exists? path) (parameterize ([read-accept-reader #t]) (call-with-input-file path read)))]) + (printf "sexp ~s\n" sexp) (match sexp - [`(module ,name ,(or `(lib "keybinding-lang.ss" "framework") - `(lib "framework/keybinding-lang.ss") - `framework/keybinding-lang) + [`(module ,name ,(? valid-key-bindings-lang?) ,@(x ...)) (let ([km (dynamic-require spec '#%keymap)]) (hash-set! user-keybindings-files spec km) @@ -41,6 +40,15 @@ (string-constant user-defined-keybinding-malformed-file) (path->string path))]))))) + (define (valid-keybindings-lang? x) + (let ([valid-langs + (list `(lib "keybinding-lang.ss" "framework") + `(lib "framework/keybinding-lang.ss") + `framework/keybinding-lang)]) + (cond + [(syntax? x) (member (syntax->datum x) valid-langs)] + [else (member x valid-langs)]))) + (define (spec->path p) (cond [(path? p) p]