diff --git a/collects/framework/private/keymap.ss b/collects/framework/private/keymap.ss index 9125865b..acfbe10d 100644 --- a/collects/framework/private/keymap.ss +++ b/collects/framework/private/keymap.ss @@ -30,23 +30,27 @@ (parameterize ([read-accept-reader #t]) (call-with-input-file path read)))]) (match sexp - [`(module ,name ,(? valid-keybindings-lang?) + [`(module ,name ,lang ,@(x ...)) - (let ([km (dynamic-require spec '#%keymap)]) - (hash-set! user-keybindings-files spec km) - (send user-keymap chain-to-keymap km #t))] + (cond + [(valid-keybindings-lang? lang) + (let ([km (dynamic-require spec '#%keymap)]) + (hash-set! user-keybindings-files spec km) + (send user-keymap chain-to-keymap km #t))] + [else + (error 'add-user-keybindings-file + (string-constant user-defined-keybinding-malformed-file/found-lang) + (path->string path) + lang)])] [else (error 'add-user-keybindings-file (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)]))) + (member x + (list `(lib "keybinding-lang.ss" "framework") + `(lib "framework/keybinding-lang.ss") + `framework/keybinding-lang))) (define (spec->path p) (cond