# HG changeset patch # User Stefan Monnier # Date 1006047848 0 # Node ID 74219f3013c685245686c15333d42931d56f4220 # Parent fc0e6d3f905d91cf3b3d586f8e1a0085ffaab695 (reb-mode): Use define-derived-mode. (font-lock-defaults-alist): Don't change it any more. (reb-subexp-mode-map): Cleanup. diff -r fc0e6d3f905d -r 74219f3013c6 lisp/emacs-lisp/re-builder.el --- a/lisp/emacs-lisp/re-builder.el Sun Nov 18 01:35:12 2001 +0000 +++ b/lisp/emacs-lisp/re-builder.el Sun Nov 18 01:44:08 2001 +0000 @@ -226,21 +226,13 @@ (define-key reb-mode-map "\C-c\C-e" 'reb-enter-subexp-mode) (define-key reb-mode-map "\C-c\C-u" 'reb-force-update))) -(defun reb-mode () - "Major mode for interactively building Regular Expressions. -\\{reb-mode-map}" - (interactive) - - (setq major-mode 'reb-mode - mode-name "RE Builder") - (use-local-map reb-mode-map) - (reb-mode-common) - (run-hooks 'reb-mode-hook)) +(define-derived-mode reb-mode nil "RE Builder" + "Major mode for interactively building Regular Expressions." + (reb-mode-common)) (define-derived-mode reb-lisp-mode emacs-lisp-mode "RE Builder Lisp" - "Major mode for interactively building symbolic Regular Expressions. -\\{reb-lisp-mode-map}" + "Major mode for interactively building symbolic Regular Expressions." (cond ((eq reb-re-syntax 'lisp-re) ; Pull in packages (require 'lisp-re)) ; as needed ((eq reb-re-syntax 'sregex) ; sregex is not autoloaded @@ -252,29 +244,17 @@ (define-key reb-lisp-mode-map "\C-c" (lookup-key reb-mode-map "\C-c")) -(if (boundp 'font-lock-defaults-alist) - (setq font-lock-defaults-alist - (cons (cons 'reb-lisp-mode - (cdr (assoc 'emacs-lisp-mode - font-lock-defaults-alist))) - font-lock-defaults-alist))) - -(defvar reb-subexp-mode-map nil +(defvar reb-subexp-mode-map + (let ((m (make-keymap))) + (suppress-keymap m) + ;; Again share the "\C-c" keymap for the commands + (define-key m "\C-c" (lookup-key reb-mode-map "\C-c")) + (define-key m "q" 'reb-quit-subexp-mode) + (dotimes (digit 10) + (define-key m (int-to-string digit) 'reb-display-subexp)) + m) "Keymap used by the RE Builder for the subexpression mode.") -(if (not reb-subexp-mode-map) - (progn - (setq reb-subexp-mode-map (make-sparse-keymap)) - (suppress-keymap reb-subexp-mode-map) - ;; Again share the "\C-c" keymap for the commands - (define-key reb-subexp-mode-map "\C-c" - (lookup-key reb-mode-map "\C-c")) - (define-key reb-subexp-mode-map "q" 'reb-quit-subexp-mode) - (mapcar (lambda (digit) - (define-key reb-subexp-mode-map (int-to-string digit) - 'reb-display-subexp)) - '(0 1 2 3 4 5 6 7 8 9)))) - (defun reb-mode-common () "Setup functions common to functions `reb-mode' and `reb-mode-lisp'." @@ -411,7 +391,6 @@ (defun reb-enter-subexp-mode () "Enter the subexpression mode in the RE Builder." (interactive) - (setq reb-subexp-mode t) (reb-update-modestring) (use-local-map reb-subexp-mode-map) @@ -434,7 +413,6 @@ (defun reb-quit-subexp-mode () "Quit the subexpression mode in the RE Builder." (interactive) - (setq reb-subexp-mode nil reb-subexp-displayed nil) (reb-update-modestring)