diff lisp/lisp-mode.el @ 404:2f8bb876ab1d r21-2-32

Import from CVS: tag r21-2-32
author cvs
date Mon, 13 Aug 2007 11:16:07 +0200
parents 74fd4e045ea6
children b8cc9ab3f761
line wrap: on
line diff
--- a/lisp/lisp-mode.el	Mon Aug 13 11:15:00 2007 +0200
+++ b/lisp/lisp-mode.el	Mon Aug 13 11:16:07 2007 +0200
@@ -1,7 +1,7 @@
 ;;; lisp-mode.el --- Lisp mode, and its idiosyncratic commands.
 
 ;; Copyright (C) 1985, 1996, 1997 Free Software Foundation, Inc.
-;; Copyright (C) 1995 Tinker Systems
+;; Copyright (C) 1995 Tinker Systems.
 
 ;; Maintainer: FSF
 ;; Keywords: lisp, languages, dumped
@@ -32,8 +32,6 @@
 ;; The base major mode for editing Lisp code (used also for Emacs Lisp).
 ;; This mode is documented in the Emacs manual
 
-;; July/05/97 slb Converted to use easymenu.
-
 ;;; Code:
 
 (defgroup lisp nil
@@ -46,55 +44,57 @@
 (defvar lisp-mode-abbrev-table nil)
 
 ;; XEmacs change
-(defvar lisp-interaction-mode-popup-menu nil)
-(defvar lisp-interaction-mode-popup-menu-1
+(defvar lisp-interaction-mode-popup-menu
   (purecopy '("Lisp-Interaction"
-	      ["Evaluate Last S-expression" eval-last-sexp]
-	      ["Evaluate Entire Buffer"     eval-current-buffer]
-	      ["Evaluate Region"	eval-region
+	      ["Evaluate Last %_S-expression" eval-last-sexp]
+	      ["Evaluate %_Whole Buffer"     eval-current-buffer]
+	      ["Evaluate Re%_gion"	eval-region
 	       :active (region-exists-p)]
 	      "---"
-	      ["Evaluate This Defun"      eval-defun]
-	      ;; FSF says "Instrument Function for Debugging"
-	      ["Debug This Defun"         edebug-defun]
+	      ["%_Evaluate This Defun"      eval-defun]
+	      ["%_Instrument This Defun for Debugging" edebug-defun]
 	      "---"
-	      ["Trace a Function"   trace-function-background]
-	      ["Untrace All Functions"    untrace-all
+	      ["Find %_Function Source..." find-function
+	       :active (fboundp 'find-function)]
+	      ["Find %_Variable Source..." find-variable
+	       :active (fboundp 'find-variable)]
+	      ["%_Trace Function..."   trace-function-background]
+	      ["%_Untrace All Functions"    untrace-all
 	       :active (fboundp 'untrace-all)]
 	      "---"
-	      ["Comment Out Region"	comment-region
+	      ["%_Comment Out Region"	comment-region
 	       :active (region-exists-p)]
-	      ["Indent Region"		indent-region
-	       :active (region-exists-p)]
-	      ["Indent Line"		lisp-indent-line]
 	      "---"
-	      ["Debug On Error" (setq debug-on-error (not debug-on-error))
-	       :style toggle :selected debug-on-error]
-	      ["Debug On Quit" (setq debug-on-quit (not debug-on-quit))
-	       :style toggle :selected debug-on-quit]
-	      ["Debug on Signal" (setq debug-on-signal (not debug-on-signal))
-	       :style toggle :selected debug-on-signal]
+	      ["Indent %_Line or Region"
+	       (if (region-exists-p)
+		   (call-interactively 'indent-region)
+		 (call-interactively 'lisp-indent-line))]
+	      ["Indent B%_alanced Expression"	indent-sexp]
+	      ["Indent %_Defun"
+	       (progn
+		 (beginning-of-defun)
+		 (indent-sexp))]
+	      "---"
+	      "Look for debug-on-error under Options->General"
 	      )))
 
-(defvar emacs-lisp-mode-popup-menu nil)
-(defvar emacs-lisp-mode-popup-menu-1
+(defvar emacs-lisp-mode-popup-menu
   (purecopy
    (nconc
     '("Emacs-Lisp"
-      ["Byte-compile This File" emacs-lisp-byte-compile]
-      ["Byte-compile/load This" emacs-lisp-byte-compile-and-load]
-      ["Byte-recompile Directory..." byte-recompile-directory]
+      ["%_Byte-Compile This File" emacs-lisp-byte-compile]
+      ["B%_yte-Compile/Load This File" emacs-lisp-byte-compile-and-load]
+      ["Byte-%_Recompile Directory..." byte-recompile-directory]
       "---")
-    (cdr lisp-interaction-mode-popup-menu-1))))
+    (cdr lisp-interaction-mode-popup-menu))))
 
 ;Don't have a menubar entry in Lisp Interaction mode.  Otherwise, the
 ;*scratch* buffer has a Lisp menubar item!  Very confusing.
 ;(defvar lisp-interaction-mode-menubar-menu
 ;  (purecopy (cons "Lisp" (cdr lisp-interaction-mode-popup-menu))))
 
-(defvar emacs-lisp-mode-menubar-menu nil)
-(defvar emacs-lisp-mode-menubar-menu-1
-  (purecopy (cons "Lisp" (cdr emacs-lisp-mode-popup-menu-1))))
+(defvar emacs-lisp-mode-menubar-menu
+  (purecopy (cons "%_Lisp" (cdr emacs-lisp-mode-popup-menu))))
 
 (if (not emacs-lisp-mode-syntax-table)
     (let ((i 0))
@@ -274,19 +274,15 @@
   (set-syntax-table emacs-lisp-mode-syntax-table)
   ;; XEmacs changes
   (setq major-mode 'emacs-lisp-mode
-	;; mode-popup-menu emacs-lisp-mode-popup-menu
+	mode-popup-menu emacs-lisp-mode-popup-menu
 	mode-name "Emacs-Lisp")
-  ;; (if (and (featurep 'menubar)
-           ;; current-menubar)
-      ;; (progn
+  (if (and (featurep 'menubar)
+           current-menubar)
+      (progn
 	;; make a local copy of the menubar, so our modes don't
 	;; change the global menubar
-	;; (set-buffer-menubar current-menubar)
-	;; (add-submenu nil emacs-lisp-mode-menubar-menu)))
-  (unless emacs-lisp-mode-popup-menu
-    (easy-menu-define emacs-lisp-mode-popup-menu emacs-lisp-mode-map ""
-		      emacs-lisp-mode-popup-menu-1))
-  (easy-menu-add emacs-lisp-mode-popup-menu)
+	(set-buffer-menubar current-menubar)
+	(add-submenu nil emacs-lisp-mode-menubar-menu)))
   (lisp-mode-variables nil)
   (run-hooks 'emacs-lisp-mode-hook))
 
@@ -366,14 +362,7 @@
   (use-local-map lisp-interaction-mode-map)
   (setq major-mode 'lisp-interaction-mode)
   (setq mode-name "Lisp Interaction")
-  ;; XEmacs change
-  ;; (setq mode-popup-menu lisp-interaction-mode-popup-menu)
-  (unless lisp-interaction-mode-popup-menu
-    (easy-menu-define lisp-interaction-mode-popup-menu
-		      lisp-interaction-mode-map
-		      ""
-		      lisp-interaction-mode-popup-menu-1))
-  (easy-menu-add lisp-interaction-mode-popup-menu)
+  (setq mode-popup-menu lisp-interaction-mode-popup-menu)
 
   (set-syntax-table emacs-lisp-mode-syntax-table)
   (lisp-mode-variables nil)
@@ -760,6 +749,7 @@
 (put 'let 'lisp-indent-function 1)
 (put 'let* 'lisp-indent-function 1)
 (put 'let-specifier 'lisp-indent-function 1)
+(put 'flet 'lisp-indent-function 1)
 (put 'while 'lisp-indent-function 1)
 (put 'if 'lisp-indent-function 2)
 (put 'catch 'lisp-indent-function 1)