* lisp/emacs-lisp/bytecomp.el (byte-compile-catch)
[bpt/emacs.git] / lisp / ledit.el
index 9721b0e..09fe500 100644 (file)
@@ -1,16 +1,16 @@
 ;;; ledit.el --- Emacs side of ledit interface
 
-;; Copyright (C) 1985 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 2001-2011 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
-;; Keyword: languages
+;; Keywords: languages
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,8 +18,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to
-;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 
 (defvar ledit-mode-map nil)
 
-(defconst ledit-zap-file (concat "/tmp/" (user-login-name) ".l1")
+(defconst ledit-zap-file
+  (expand-file-name (concat (user-login-name) ".l1") temporary-file-directory)
   "File name for data sent to Lisp by Ledit.")
-(defconst ledit-read-file (concat "/tmp/" (user-login-name) ".l2")
+(defconst ledit-read-file
+  (expand-file-name (concat (user-login-name) ".l2") temporary-file-directory)
   "File name for data sent to Ledit by Lisp.")
-(defconst ledit-compile-file 
-  (concat "/tmp/" (user-login-name) ".l4")
+(defconst ledit-compile-file
+  (expand-file-name (concat (user-login-name) ".l4") temporary-file-directory)
   "File name for data sent to Lisp compiler by Ledit.")
 (defconst ledit-buffer "*LEDIT*"
   "Name of buffer in which Ledit accumulates data to send to Lisp.")
@@ -53,7 +54,7 @@
 *Shell commands to execute to resume Lisp compiler job.")
 
 (defun ledit-save-defun ()
-  "Save the current defun in the ledit buffer"
+  "Save the current defun in the ledit buffer."
   (interactive)
   (save-excursion
    (end-of-defun)
   (if ledit-save-files
       (save-some-buffers))
   (if (get-buffer ledit-buffer)
-      (save-excursion
-       (set-buffer ledit-buffer)
-       (goto-char (point-min))
-       (write-region (point-min) (point-max) ledit-zap-file)
-       (erase-buffer)))
+      (with-current-buffer ledit-buffer
+        (goto-char (point-min))
+        (write-region (point-min) (point-max) ledit-zap-file)
+        (erase-buffer)))
   (suspend-emacs ledit-go-to-lisp-string)
   (load ledit-read-file t t))
 
   (if ledit-save-files
       (save-some-buffers))
   (if (get-buffer ledit-buffer)
-      (save-excursion
-       (set-buffer ledit-buffer)
-       (goto-char (point-min))
-       (insert "(declare (macros t))\n")
-       (write-region (point-min) (point-max) ledit-compile-file)
-       (erase-buffer)))
+      (with-current-buffer ledit-buffer
+        (goto-char (point-min))
+        (insert "(declare (macros t))\n")
+        (write-region (point-min) (point-max) ledit-compile-file)
+        (erase-buffer)))
   (suspend-emacs ledit-go-to-liszt-string)
   (load ledit-read-file t t))
 
 (defun ledit-setup ()
   "Set up key bindings for the Lisp/Emacs interface."
-  (if (not ledit-mode-map)
-      (progn (setq ledit-mode-map (nconc (make-sparse-keymap) 
-                                        shared-lisp-mode-map))))
+  (unless ledit-mode-map
+    (setq ledit-mode-map (make-sparse-keymap))
+    (set-keymap-parent ledit-mode-map lisp-mode-shared-map))
   (define-key ledit-mode-map "\e\^d" 'ledit-save-defun)
   (define-key ledit-mode-map "\e\^r" 'ledit-save-region)
   (define-key ledit-mode-map "\^xz" 'ledit-go-to-lisp)
@@ -137,11 +136,12 @@ Like Lisp mode, plus these special commands:
   \\[ledit-go-to-lisp] -- transfer to Lisp job and transmit saved text.
   \\[ledit-go-to-liszt] -- transfer to Liszt (Lisp compiler) job
           and transmit saved text.
+
 \\{ledit-mode-map}
 To make Lisp mode automatically change to Ledit mode,
 do (setq lisp-mode-hook 'ledit-from-lisp-mode)"
   (interactive)
-  (lisp-mode)
+  (delay-mode-hooks (lisp-mode))
   (ledit-from-lisp-mode))
 
 ;;;###autoload
@@ -149,6 +149,8 @@ do (setq lisp-mode-hook 'ledit-from-lisp-mode)"
   (use-local-map ledit-mode-map)
   (setq mode-name "Ledit")
   (setq major-mode 'ledit-mode)
-  (run-hooks 'ledit-mode-hook))
+  (run-mode-hooks 'ledit-mode-hook))
+
+(provide 'ledit)
 
 ;;; ledit.el ends here