From 1f61f6dad0bcf1d0ac52a5c7d19d9cf22ec58b2e Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Tue, 25 Nov 2008 11:48:11 +0100 Subject: [PATCH 1/2] Emacs factor modes: gensym is not needed. --- misc/factor.el | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/misc/factor.el b/misc/factor.el index 6c9faf50c9..790ff0c56a 100644 --- a/misc/factor.el +++ b/misc/factor.el @@ -652,13 +652,12 @@ vocabularies which have been modified on disk." ;;; Key bindings: -(defmacro factor--define-key (key cmd &optional both) - (let ((m (gensym)) - (ms '(factor-mode-map))) - (when both (push 'factor-help-mode-map ms)) - `(dolist (,m (list ,@ms)) - (define-key ,m [(control ?c) ,key] ,cmd) - (define-key ,m [(control ?c) (control ,key)] ,cmd)))) +(defun factor--define-key (key cmd &optional both) + (let ((ms (list factor-mode-map))) + (when both (push factor-help-mode-map ms)) + (dolist (m ms) + (define-key m (vector '(control ?c) key) cmd) + (define-key m (vector '(control ?c) `(control ,key)) cmd)))) (factor--define-key ?f 'factor-run-file) (factor--define-key ?r 'factor-send-region) From a11453e458d5e94e0ef04ff8528baf1dbf4acc79 Mon Sep 17 00:00:00 2001 From: "Jose A. Ortega Ruiz" Date: Tue, 25 Nov 2008 21:53:06 +0100 Subject: [PATCH 2/2] Emacs factor-mode: fix indentation of empty line after starting word definition. --- misc/factor.el | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/misc/factor.el b/misc/factor.el index 790ff0c56a..346642f70c 100644 --- a/misc/factor.el +++ b/misc/factor.el @@ -160,10 +160,6 @@ buffer." ;;; Factor mode font lock: -(defconst factor--regexp-word-start - (let ((sws '("" ":" "TUPLE" "MACRO" "MACRO:" "M"))) - (format "^\\(%s\\)\\(:\\) " (mapconcat 'identity sws "\\|")))) - (defconst factor--parsing-words '("{" "}" "^:" "^::" ";" "<<" ">" "BIN:" "BV{" "B{" "C:" "C-STRUCT:" "C-UNION:" "CHAR:" "CS{" "C{" @@ -222,6 +218,10 @@ buffer." ;;; Factor mode syntax: +(defconst factor--regexp-word-start + (let ((sws '("" ":" "TUPLE" "MACRO" "MACRO:" "M"))) + (format "^\\(%s\\)\\(:\\) " (regexp-opt sws)))) + (defconst factor--font-lock-syntactic-keywords `(("^\\(:\\)\\(:\\)" (1 ".") (2 "(;")) (,factor--regexp-word-start (2 "(;")) @@ -321,7 +321,7 @@ buffer." "PRIVATE>" "