-(defvar simula-mode-map ()
- "Keymap used in SIMULA mode.")
-
-(if simula-mode-map
- ()
- (setq simula-mode-map (make-sparse-keymap))
- (define-key simula-mode-map "\C-c\C-u" 'simula-backward-up-level)
- (define-key simula-mode-map "\C-c\C-p" 'simula-previous-statement)
- (define-key simula-mode-map "\C-c\C-d" 'simula-forward-down-level)
- (define-key simula-mode-map "\C-c\C-n" 'simula-next-statement)
- ;(define-key simula-mode-map "\C-c\C-g" 'simula-goto-definition)
- ;(define-key simula-mode-map "\C-c\C-h" 'simula-standard-help)
- (define-key simula-mode-map "\177" 'backward-delete-char-untabify)
- (define-key simula-mode-map ":" 'simula-electric-label)
- (define-key simula-mode-map "\e\C-q" 'simula-indent-exp)
- (define-key simula-mode-map "\t" 'simula-indent-command)
- ;; Emacs 19 defines menus in the mode map
- (if (memq 'FSF simula-emacs-features)
- (progn
- (define-key simula-mode-map [menu-bar] (make-sparse-keymap))
-
- (define-key simula-mode-map [menu-bar simula]
- (cons "SIMULA" (make-sparse-keymap "SIMULA")))
- (define-key simula-mode-map [menu-bar simula bug-report]
- '("Submit Bug Report" . simula-submit-bug-report))
- (define-key simula-mode-map [menu-bar simula separator-indent]
- '("--"))
- (define-key simula-mode-map [menu-bar simula indent-exp]
- '("Indent Expression" . simula-indent-exp))
- (define-key simula-mode-map [menu-bar simula indent-line]
- '("Indent Line" . simula-indent-command))
- (define-key simula-mode-map [menu-bar simula separator-navigate]
- '("--"))
- (define-key simula-mode-map [menu-bar simula backward-stmt]
- '("Previous Statement" . simula-previous-statement))
- (define-key simula-mode-map [menu-bar simula forward-stmt]
- '("Next Statement" . simula-next-statement))
- (define-key simula-mode-map [menu-bar simula backward-up]
- '("Backward Up Level" . simula-backward-up-level))
- (define-key simula-mode-map [menu-bar simula forward-down]
- '("Forward Down Statement" . simula-forward-down-level))
-
- (put 'simula-next-statement 'menu-enable '(not (eobp)))
- (put 'simula-previous-statement 'menu-enable '(not (bobp)))
- (put 'simula-forward-down-level 'menu-enable '(not (eobp)))
- (put 'simula-backward-up-level 'menu-enable '(not (bobp)))
- (put 'simula-indent-command 'menu-enable '(not buffer-read-only))
- (put 'simula-indent-exp 'menu-enable '(not buffer-read-only))))
-
- ;; RMS: mouse-3 should not select this menu. mouse-3's global
- ;; definition is useful in SIMULA mode and we should not interfere
- ;; with that. The menu is mainly for beginners, and for them,
- ;; the menubar requires less memory than a special click.
- ;; in Lucid Emacs, we want the menu to popup when the 3rd button is
- ;; hit. In 19.10 and beyond this is done automatically if we put
- ;; the menu on mode-popup-menu variable, see c-common-init [cc-mode.el]
- (if (memq 'Lucid simula-emacs-features)
- (if (not (boundp 'mode-popup-menu))
- (define-key simula-mode-map 'button3 'simula-popup-menu))))
+(defvar simula-mode-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map "\C-c\C-u" 'simula-backward-up-level)
+ (define-key map "\C-c\C-p" 'simula-previous-statement)
+ (define-key map "\C-c\C-d" 'simula-forward-down-level)
+ (define-key map "\C-c\C-n" 'simula-next-statement)
+ ;; (define-key map "\C-c\C-g" 'simula-goto-definition)
+ ;; (define-key map "\C-c\C-h" 'simula-standard-help)
+ (define-key map "\177" 'backward-delete-char-untabify)
+ (define-key map ":" 'simula-electric-label)
+ (define-key map "\e\C-q" 'simula-indent-exp)
+ (define-key map "\t" 'simula-indent-command)
+ ;; Emacs 19 defines menus in the mode map
+ (define-key map [menu-bar simula]
+ (cons "SIMULA" (make-sparse-keymap "SIMULA")))
+ (define-key map [menu-bar simula bug-report]
+ '("Submit Bug Report" . simula-submit-bug-report))
+ (define-key map [menu-bar simula separator-indent]
+ '("--"))
+ (define-key map [menu-bar simula indent-exp]
+ '("Indent Expression" . simula-indent-exp))
+ (define-key map [menu-bar simula indent-line]
+ '("Indent Line" . simula-indent-command))
+ (define-key map [menu-bar simula separator-navigate]
+ '("--"))
+ (define-key map [menu-bar simula backward-stmt]
+ '("Previous Statement" . simula-previous-statement))
+ (define-key map [menu-bar simula forward-stmt]
+ '("Next Statement" . simula-next-statement))
+ (define-key map [menu-bar simula backward-up]
+ '("Backward Up Level" . simula-backward-up-level))
+ (define-key map [menu-bar simula forward-down]
+ '("Forward Down Statement" . simula-forward-down-level))
+
+ (put 'simula-next-statement 'menu-enable '(not (eobp)))
+ (put 'simula-previous-statement 'menu-enable '(not (bobp)))
+ (put 'simula-forward-down-level 'menu-enable '(not (eobp)))
+ (put 'simula-backward-up-level 'menu-enable '(not (bobp)))
+ (put 'simula-indent-command 'menu-enable '(not buffer-read-only))
+ (put 'simula-indent-exp 'menu-enable '(not buffer-read-only))
+
+ ;; RMS: mouse-3 should not select this menu. mouse-3's global
+ ;; definition is useful in SIMULA mode and we should not interfere
+ ;; with that. The menu is mainly for beginners, and for them,
+ ;; the menubar requires less memory than a special click.
+ ;; in Lucid Emacs, we want the menu to popup when the 3rd button is
+ ;; hit. In 19.10 and beyond this is done automatically if we put
+ ;; the menu on mode-popup-menu variable, see c-common-init [cc-mode.el]
+ ;;(if (not (boundp 'mode-popup-menu))
+ ;; (define-key simula-mode-map 'button3 'simula-popup-menu))
+ map)
+ "Keymap used in `simula-mode'.")