# HG changeset patch # User Tom Tromey # Date 800055413 0 # Node ID 635f5fb5d82afd43bebcd8e52ef5a8247dd47a75 # Parent 999e039b498b1782df524101c19381ae730cff7a Changed "Lucid Emacs" to "XEmacs". Tcl's popup menu now added to existing one, courtesy dfarmer@evolving.com (Doug Farmer) diff -r 999e039b498b -r 635f5fb5d82a lisp/progmodes/tcl.el --- a/lisp/progmodes/tcl.el Tue May 09 20:22:38 1995 +0000 +++ b/lisp/progmodes/tcl.el Tue May 09 21:36:53 1995 +0000 @@ -6,7 +6,7 @@ ;; Author: Tom Tromey ;; Chris Lindblad ;; Keywords: languages tcl modes -;; Version: $Revision: 1.27 $ +;; Version: $Revision: 1.28 $ ;; This file is part of GNU Emacs. @@ -51,7 +51,7 @@ ;; LCD Archive Entry: ;; tcl|Tom Tromey|tromey@busco.lanl.gov| ;; Major mode for editing Tcl| -;; $Date: 1994/10/11 02:01:27 $|$Revision: 1.27 $|~/modes/tcl.el.Z| +;; $Date: 1995/04/08 19:52:50 $|$Revision: 1.28 $|~/modes/tcl.el.Z| ;; CUSTOMIZATION NOTES: ;; * tcl-proc-list can be used to customize a list of things that @@ -65,6 +65,11 @@ ;; Change log: ;; $Log: tcl.el,v $ +;; Revision 1.28 1995/04/08 19:52:50 tromey +;; (tcl-outline-level): New function +;; (tcl-mode): Added outline-handling stuff. +;; From Jesper Pedersen +;; ;; Revision 1.27 1994/10/11 02:01:27 tromey ;; (tcl-mode): imenu-create-index-function made buffer local. ;; @@ -210,6 +215,7 @@ ;; Carl Witty ;; T. V. Raman ;; Jesper Pedersen +;; dfarmer@evolving.com (Doug Farmer) ;; KNOWN BUGS: ;; * indent-region should skip blank lines. (It does in v19, so I'm @@ -253,7 +259,6 @@ ;; * Consider writing code to find help files automatically (for ;; common cases). ;; * `#' shouldn't insert `\#' when point is in string. -;; * '}' doesn't seem to reindent. @@ -262,15 +267,15 @@ ;; I sure wish Emacs had a package that made it easy to extract this ;; sort of information. (defconst tcl-using-emacs-19 (string-match "19\\." emacs-version) - "Nil unless using Emacs 19 (Lucid or FSF).") + "Nil unless using Emacs 19 (XEmacs or FSF).") ;; FIXME this will break on Emacs 19.100. (defconst tcl-using-emacs-19-23 (string-match "19\\.\\(2[3-9]\\|[3-9][0-9]\\)" emacs-version) "Nil unless using Emacs 19-23 or later.") -(defconst tcl-using-lemacs-19 (string-match "Lucid" emacs-version) - "Nil unless using Lucid Emacs).") +(defconst tcl-using-xemacs-19 (string-match "XEmacs" emacs-version) + "Nil unless using XEmacs).") (require 'comint) @@ -279,12 +284,12 @@ (and (fboundp 'eval-when-compile) (eval-when-compile (if (and (string-match "19\\." emacs-version) - (not (string-match "Lucid" emacs-version))) + (not (string-match "XEmacs" emacs-version))) (require 'imenu)) ())) -(defconst tcl-version "$Revision: 1.27 $") -(defconst tcl-maintainer "Tom Tromey ") +(defconst tcl-version "$Revision: 1.28 $") +(defconst tcl-maintainer "Tom Tromey ") ;; ;; User variables. @@ -400,8 +405,8 @@ (defvar inferior-tcl-mode-map nil "Keymap used in Inferior Tcl mode.") -;; Lucid Emacs menu. -(defvar tcl-lucid-menu +;; XEmacs menu. +(defvar tcl-xemacs-menu '("Tcl" ["Beginning of function" tcl-beginning-of-defun t] ["End of function" tcl-end-of-defun t] @@ -421,7 +426,7 @@ "----" ["Tcl help" tcl-help-on-word tcl-help-directory-list] ["Send bug report" tcl-submit-bug-report t]) - "Lucid Emacs menu for Tcl mode.") + "XEmacs menu for Tcl mode.") ;; GNU Emacs does menus via keymaps. Do it in a function in case we ;; later decide to add it to inferior Tcl mode as well. @@ -429,7 +434,7 @@ (define-key map [menu-bar] (make-sparse-keymap)) ;; This fails in Emacs 19.22 and earlier. (require 'lmenu) - (let ((menu (make-lucid-menu-keymap "Tcl" (cdr tcl-lucid-menu)))) + (let ((menu (make-xemacs-menu-keymap "Tcl" (cdr tcl-xemacs-menu)))) (define-key map [menu-bar tcl] (cons "Tcl" menu)) ;; The following is intended to compute the key sequence ;; information for the menu. It doesn't work. @@ -464,11 +469,10 @@ (define-key tcl-mode-map "\C-c\C-s" 'switch-to-tcl) ;; Make menus. - (if tcl-using-emacs-19 - (if tcl-using-lemacs-19 - ;; In Lucid, button 3 seems to be the standard for this. - (define-key tcl-mode-map 'button3 'tcl-popup-menu) - ;; In FSF 19, there is no standard, so I use shift-button2. + (if (and tcl-using-emacs-19 (not tcl-using-xemacs-19)) + (progn + ;; In FSF 19, there is no standard button for the popup menu, + ;; so I use shift-button2. (tcl-add-fsf-menu tcl-mode-map) (define-key tcl-mode-map [S-down-mouse-2] 'tcl-popup-menu)))) @@ -652,7 +656,7 @@ ;; We use this because Lemacs 19.9 has what we need. (defconst tcl-pps-has-arg-6 (or tcl-using-emacs-19 - (and tcl-using-lemacs-19 + (and tcl-using-xemacs-19 (condition-case nil (progn (parse-partial-sexp (point) (point) nil nil nil t) @@ -750,14 +754,14 @@ (backward-paragraph)) ;; In GNU Emacs 19-23 and later, mark-defun works as advertised. I -;; don't know about Lucid Emacs, so for now it and Emacs 18 just lose. +;; don't know about XEmacs, so for now it and Emacs 18 just lose. (fset 'tcl-mark-defun (if tcl-using-emacs-19-23 'mark-defun 'tcl-internal-mark-defun)) ;; In GNU Emacs 19, mark takes an additional "force" argument. I -;; don't know about Lucid Emacs, so I'm just assuming it is the same. +;; don't know about XEmacs, so I'm just assuming it is the same. ;; Emacs 18 doesn't have this argument. (defun tcl-mark () "Return mark, or nil if none." @@ -896,10 +900,10 @@ (if tcl-using-emacs-19 (progn - ;; This can only be set to t in Emacs 19 and Lucid Emacs. + ;; This can only be set to t in Emacs 19 and XEmacs. ;; Emacs 18 and Epoch lose. (setq parse-sexp-ignore-comments t) - ;; Lucid Emacs has defun-prompt-regexp, but I don't believe + ;; XEmacs has defun-prompt-regexp, but I don't believe ;; that it works for end-of-defun -- only for ;; beginning-of-defun. (make-local-variable 'defun-prompt-regexp) @@ -910,14 +914,17 @@ (setq add-log-current-defun-function 'add-log-tcl-defun)) (setq parse-sexp-ignore-comments nil)) - ;; Put Tcl menu into menubar for Lucid Emacs. This happens + ;; Put Tcl menu into menubar for XEmacs. This happens ;; automatically for GNU Emacs. - (if (and tcl-using-lemacs-19 + (if (and tcl-using-xemacs-19 current-menubar (not (assoc "Tcl" current-menubar))) (progn (set-buffer-menubar (copy-sequence current-menubar)) (add-menu nil "Tcl" tcl-lucid-menu))) + ;; Append Tcl menu to popup menu for XEmacs. + (if (and tcl-using-xemacs-19 (not (boundp 'mode-popup-menu))) + (setq mode-popup-menu tcl-xemacs-menu)) (run-hooks 'tcl-mode-hook)) @@ -1959,17 +1966,17 @@ ;; -;; Lucid menu support. +;; XEmacs menu support. ;; Taken from schmid@fb3-s7.math.TU-Berlin.DE (Gregor Schmid), ;; who wrote a different Tcl mode. ;; We also have support for menus in FSF. We do this by -;; loading the Lucid menu emulation code. +;; loading the XEmacs menu emulation code. ;; (defun tcl-popup-menu (e) (interactive "@e") (and tcl-using-emacs-19 - (not tcl-using-lemacs-19) + (not tcl-using-xemacs-19) (if tcl-using-emacs-19-23 (require 'lmenu) ;; CAVEATS: @@ -1980,7 +1987,7 @@ ;; using an Emacs before that just suffer. (require 'menubar "lmenu"))) ;; This is annoying ;; IMHO popup-menu should be autoloaded in FSF Emacs. Oh well. - (popup-menu tcl-lucid-menu)) + (popup-menu tcl-xemacs-menu)) @@ -2031,7 +2038,7 @@ inferior-tcl-source-command tcl-using-emacs-19 tcl-using-emacs-19-23 - tcl-using-lemacs-19 + tcl-using-xemacs-19 tcl-proc-list tcl-proc-regexp tcl-typeword-list