Update FSF's address.
This commit is contained in:
parent
8f65287798
commit
b578f267af
351 changed files with 5589 additions and 5125 deletions
|
@ -17,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -21,8 +21,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;;_* Commentary:
|
||||
|
||||
|
|
1167
lisp/ange-ftp.el
1167
lisp/ange-ftp.el
File diff suppressed because it is too large
Load diff
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -1,29 +1,30 @@
|
|||
;;; arc-mode.el --- simple editing of archives
|
||||
|
||||
;;; Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Morten Welinder (terra@diku.dk)
|
||||
;; Keywords: archives msdog editing major-mode
|
||||
;; Favourite-brand-of-beer: None, I hate beer.
|
||||
|
||||
;;; This file is part of GNU Emacs.
|
||||
;;;
|
||||
;;; 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.
|
||||
;;;
|
||||
;;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; 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.
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; 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.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; 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, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
|
||||
;; NAMING: "arc" is short for "archive" and does not refer specifically
|
||||
;; to files whose name end in ".arc"
|
||||
;;
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
;;; autoinsert.el --- automatic mode-dependent insertion of text into new files
|
||||
|
||||
;; Copyright (C) 1985, 1986, 1987, 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Charlie Martin <crm@cs.duke.edu>
|
||||
|
@ -17,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,52 +18,53 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; For those who are annoyed by the mouse pointer obscuring text,
|
||||
;;; this mode moves the mouse pointer - either just a little out of
|
||||
;;; the way, or all the way to the corner of the frame.
|
||||
;;; To use, load or evaluate this file and type M-x mouse-avoidance-mode .
|
||||
;;; To set up permanently, put the following in your .emacs:
|
||||
;;;
|
||||
;;; (if window-system (mouse-avoidance-mode 'animate))
|
||||
;;;
|
||||
;;; The 'animate can be 'jump or 'banish or 'exile or 'protean if you prefer.
|
||||
;;; See the documentation for function `mouse-avoidance-mode' for
|
||||
;;; details of the different modes.
|
||||
;;;
|
||||
;;; For added silliness, make the animatee animate...
|
||||
;;; put something similar to the following into your .emacs:
|
||||
;;;
|
||||
;;; (if window-system
|
||||
;;; (mouse-avoidance-set-pointer-shape
|
||||
;;; (eval (nth (random 4)
|
||||
;;; '(x-pointer-man x-pointer-spider
|
||||
;;; x-pointer-gobbler x-pointer-gumby)))))
|
||||
;;;
|
||||
;;; For completely random pointer shape, replace the setq above with:
|
||||
;;; (setq x-pointer-shape (mouse-avoidance-random-shape))
|
||||
;;;
|
||||
;;; Bugs / Warnings / To-Do:
|
||||
;;;
|
||||
;;; - Using this code does slow emacs down. "banish" mode shouldn't
|
||||
;;; be too bad, and on my workstation even "animate" is reasonable.
|
||||
;;;
|
||||
;;; - It ought to find out where any overlapping frames are and avoid them,
|
||||
;;; rather than always raising the frame.
|
||||
|
||||
;;; Credits:
|
||||
;;; This code was helped by all those who contributed suggestions,
|
||||
;;; fixes, and additions
|
||||
;;; Joe Harrington (and his advisor), for the original inspiration.
|
||||
;;; Ken Manheimer, for dreaming up the Protean mode.
|
||||
;;; Richard Stallman, for the awful cat-and-mouse pun, among other things.
|
||||
;;; Mike Williams, Denis Howe, Bill Benedetto, Chris Moore, Don Morris,
|
||||
;;; Simon Marshall, and M.S. Ashton, for their feedback.
|
||||
;;;
|
||||
;; For those who are annoyed by the mouse pointer obscuring text,
|
||||
;; this mode moves the mouse pointer - either just a little out of
|
||||
;; the way, or all the way to the corner of the frame.
|
||||
;; To use, load or evaluate this file and type M-x mouse-avoidance-mode .
|
||||
;; To set up permanently, put the following in your .emacs:
|
||||
;;
|
||||
;; (if window-system (mouse-avoidance-mode 'animate))
|
||||
;;
|
||||
;; The 'animate can be 'jump or 'banish or 'exile or 'protean if you prefer.
|
||||
;; See the documentation for function `mouse-avoidance-mode' for
|
||||
;; details of the different modes.
|
||||
;;
|
||||
;; For added silliness, make the animatee animate...
|
||||
;; put something similar to the following into your .emacs:
|
||||
;;
|
||||
;; (if window-system
|
||||
;; (mouse-avoidance-set-pointer-shape
|
||||
;; (eval (nth (random 4)
|
||||
;; '(x-pointer-man x-pointer-spider
|
||||
;; x-pointer-gobbler x-pointer-gumby)))))
|
||||
;;
|
||||
;; For completely random pointer shape, replace the setq above with:
|
||||
;; (setq x-pointer-shape (mouse-avoidance-random-shape))
|
||||
;;
|
||||
;; Bugs / Warnings / To-Do:
|
||||
;;
|
||||
;; - Using this code does slow emacs down. "banish" mode shouldn't
|
||||
;; be too bad, and on my workstation even "animate" is reasonable.
|
||||
;;
|
||||
;; - It ought to find out where any overlapping frames are and avoid them,
|
||||
;; rather than always raising the frame.
|
||||
|
||||
;; Credits:
|
||||
;; This code was helped by all those who contributed suggestions,
|
||||
;; fixes, and additions
|
||||
;; Joe Harrington (and his advisor), for the original inspiration.
|
||||
;; Ken Manheimer, for dreaming up the Protean mode.
|
||||
;; Richard Stallman, for the awful cat-and-mouse pun, among other things.
|
||||
;; Mike Williams, Denis Howe, Bill Benedetto, Chris Moore, Don Morris,
|
||||
;; Simon Marshall, and M.S. Ashton, for their feedback.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(provide 'avoid)
|
||||
|
|
|
@ -8,13 +8,6 @@
|
|||
;; Author's Update Number: see variable `bookmark-version'.
|
||||
;; Keywords: bookmarks, placeholders, annotations
|
||||
|
||||
;;; Summary:
|
||||
;; This package is for setting "bookmarks" in files. A bookmark
|
||||
;; associates a string with a location in a certain file. Thus, you
|
||||
;; can navigate your way to that location by providing the string.
|
||||
;; See the "User Variables" section for customizations.
|
||||
|
||||
;;; Copyright info:
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software; you can redistribute it and/or modify
|
||||
|
@ -28,8 +21,16 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This package is for setting "bookmarks" in files. A bookmark
|
||||
;; associates a string with a location in a certain file. Thus, you
|
||||
;; can navigate your way to that location by providing the string.
|
||||
;; See the "User Variables" section for customizations.
|
||||
|
||||
;; Thanks to David Bremner <bremner@cs.sfu.ca> for thinking of and
|
||||
;; then implementing the bookmark-current-bookmark idea. He even
|
||||
|
@ -76,13 +77,11 @@
|
|||
;; FAVORITE CHINESE RESTAURANT:
|
||||
;; Boy, that's a tough one. Probably Hong Min, or maybe Emperor's
|
||||
;; Choice (both in Chicago's Chinatown). Well, both. How about you?
|
||||
|
||||
|
||||
(require 'pp)
|
||||
|
||||
|
||||
;;;; Code:
|
||||
|
||||
(require 'pp)
|
||||
|
||||
(defconst bookmark-version "2.6.20"
|
||||
"Version number of bookmark.el. This is not related to the version
|
||||
of Emacs bookmark comes with; it is used solely by bookmark's
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
;;; browse-url.el --- ask a WWW browser to load a URL
|
||||
|
||||
;; Copyright 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Denis Howe <dbh@doc.ic.ac.uk>
|
||||
|
@ -10,20 +11,20 @@
|
|||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; 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.
|
||||
;; 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.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful, but
|
||||
;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
;; General Public License for more details.
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; 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.
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;; Commentary:
|
||||
|
||||
;; The latest version of this package should be available from
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,13 +19,14 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;; interface to selectively inlining functions.
|
||||
;;; This only happens when source-code optimization is turned on.
|
||||
;; interface to selectively inlining functions.
|
||||
;; This only happens when source-code optimization is turned on.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,26 +20,27 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;; This collection of functions implements the creation of LaTeX calendars
|
||||
;; based on the user's holiday choices and diary file.
|
||||
|
||||
;;; TO DO
|
||||
;;;
|
||||
;;; (*) Add holidays and diary entries to daily calendar.
|
||||
;;;
|
||||
;;; (*) Add diary entries to weekly calendar functions.
|
||||
;;;
|
||||
;;; (*) Make calendar styles for A4 paper.
|
||||
;;;
|
||||
;;; (*) Make daily and monthly styles Filofax paper.
|
||||
;;;
|
||||
;;; (*) Improve the LaTeX command that produces the boxes in the monthly
|
||||
;;; calendar to eliminate slight gap--what causes it?!
|
||||
;; TO DO
|
||||
;;
|
||||
;; (*) Add holidays and diary entries to daily calendar.
|
||||
;;
|
||||
;; (*) Add diary entries to weekly calendar functions.
|
||||
;;
|
||||
;; (*) Make calendar styles for A4 paper.
|
||||
;;
|
||||
;; (*) Make daily and monthly styles Filofax paper.
|
||||
;;
|
||||
;; (*) Improve the LaTeX command that produces the boxes in the monthly
|
||||
;; calendar to eliminate slight gap--what causes it?!
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; calendar.el --- Calendar functions. -*-byte-compile-dynamic: t;-*-
|
||||
;;; calendar.el --- Calendar functions.
|
||||
|
||||
;;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995 Free Software
|
||||
;;; Foundation, Inc.
|
||||
;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995 Free
|
||||
;; Software Foundation, Inc.
|
||||
|
||||
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
|
||||
;; Keywords: calendar
|
||||
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
@ -2317,4 +2318,8 @@ Defaults to today's date if DATE is not given."
|
|||
|
||||
(provide 'calendar)
|
||||
|
||||
;;; Local variables:
|
||||
;;; byte-compile-dynamic: t
|
||||
;;; End:
|
||||
|
||||
;;; calendar.el ends here
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; diary-lib.el --- diary functions.
|
||||
|
||||
;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995 Free Software Foundation,
|
||||
;; Inc.
|
||||
;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995 Free Software
|
||||
;; Foundation, Inc.
|
||||
|
||||
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
|
||||
;; Keywords: calendar
|
||||
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; holidays.el --- holiday functions for the calendar package
|
||||
|
||||
;;; Copyright (C) 1989, 1990, 1992, 1993, 1994 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1989, 1990, 1992, 1993, 1994 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
|
||||
;; Keywords: holidays, calendar
|
||||
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -21,8 +21,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,50 +19,51 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;; This is a customisation of comint-mode (see comint.el)
|
||||
;;;
|
||||
;;; Written by Olin Shivers (olin.shivers@cs.cmu.edu). With bits and pieces
|
||||
;;; lifted from scheme.el, shell.el, clisp.el, newclisp.el, cobol.el, et al..
|
||||
;;; 8/88
|
||||
;;;
|
||||
;;; Please send me bug reports, bug fixes, and extensions, so that I can
|
||||
;;; merge them into the master source.
|
||||
;;;
|
||||
;;; The changelog is at the end of this file.
|
||||
;;;
|
||||
;;; NOTE: MIT Cscheme, when invoked with the -emacs flag, has a special user
|
||||
;;; interface that communicates process state back to the superior emacs by
|
||||
;;; outputting special control sequences. The gnumacs package, xscheme.el, has
|
||||
;;; lots and lots of special purpose code to read these control sequences, and
|
||||
;;; so is very tightly integrated with the cscheme process. The cscheme
|
||||
;;; interrupt handler and debugger read single character commands in cbreak
|
||||
;;; mode; when this happens, xscheme.el switches to special keymaps that bind
|
||||
;;; the single letter command keys to emacs functions that directly send the
|
||||
;;; character to the scheme process. Cmuscheme mode does *not* provide this
|
||||
;;; functionality. If you are a cscheme user, you may prefer to use the
|
||||
;;; xscheme.el/cscheme -emacs interaction.
|
||||
;;;
|
||||
;;; Here's a summary of the pros and cons, as I see them.
|
||||
;;; xscheme: Tightly integrated with inferior cscheme process! A few commands
|
||||
;;; not in cmuscheme. But. Integration is a bit of a hack. Input
|
||||
;;; history only keeps the immediately prior input. Bizarre
|
||||
;;; keybindings.
|
||||
;;;
|
||||
;;; cmuscheme: Not tightly integrated with inferior cscheme process. But.
|
||||
;;; Carefully integrated functionality with the entire suite of
|
||||
;;; comint-derived CMU process modes. Keybindings reminiscent of
|
||||
;;; Zwei and Hemlock. Good input history. A few commands not in
|
||||
;;; xscheme.
|
||||
;;;
|
||||
;;; It's a tradeoff. Pay your money; take your choice. If you use a Scheme
|
||||
;;; that isn't Cscheme, of course, there isn't a choice. Xscheme.el is *very*
|
||||
;;; Cscheme-specific; you must use cmuscheme.el. Interested parties are
|
||||
;;; invited to port xscheme functionality on top of comint mode...
|
||||
;; This is a customisation of comint-mode (see comint.el)
|
||||
;;
|
||||
;; Written by Olin Shivers (olin.shivers@cs.cmu.edu). With bits and pieces
|
||||
;; lifted from scheme.el, shell.el, clisp.el, newclisp.el, cobol.el, et al..
|
||||
;; 8/88
|
||||
;;
|
||||
;; Please send me bug reports, bug fixes, and extensions, so that I can
|
||||
;; merge them into the master source.
|
||||
;;
|
||||
;; The changelog is at the end of this file.
|
||||
;;
|
||||
;; NOTE: MIT Cscheme, when invoked with the -emacs flag, has a special user
|
||||
;; interface that communicates process state back to the superior emacs by
|
||||
;; outputting special control sequences. The gnumacs package, xscheme.el, has
|
||||
;; lots and lots of special purpose code to read these control sequences, and
|
||||
;; so is very tightly integrated with the cscheme process. The cscheme
|
||||
;; interrupt handler and debugger read single character commands in cbreak
|
||||
;; mode; when this happens, xscheme.el switches to special keymaps that bind
|
||||
;; the single letter command keys to emacs functions that directly send the
|
||||
;; character to the scheme process. Cmuscheme mode does *not* provide this
|
||||
;; functionality. If you are a cscheme user, you may prefer to use the
|
||||
;; xscheme.el/cscheme -emacs interaction.
|
||||
;;
|
||||
;; Here's a summary of the pros and cons, as I see them.
|
||||
;; xscheme: Tightly integrated with inferior cscheme process! A few commands
|
||||
;; not in cmuscheme. But. Integration is a bit of a hack. Input
|
||||
;; history only keeps the immediately prior input. Bizarre
|
||||
;; keybindings.
|
||||
;;
|
||||
;; cmuscheme: Not tightly integrated with inferior cscheme process. But.
|
||||
;; Carefully integrated functionality with the entire suite of
|
||||
;; comint-derived CMU process modes. Keybindings reminiscent of
|
||||
;; Zwei and Hemlock. Good input history. A few commands not in
|
||||
;; xscheme.
|
||||
;;
|
||||
;; It's a tradeoff. Pay your money; take your choice. If you use a Scheme
|
||||
;; that isn't Cscheme, of course, there isn't a choice. Xscheme.el is *very*
|
||||
;; Cscheme-specific; you must use cmuscheme.el. Interested parties are
|
||||
;; invited to port xscheme functionality on top of comint mode...
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
703
lisp/comint.el
703
lisp/comint.el
|
@ -19,121 +19,122 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;; Please send me bug reports, bug fixes, and extensions, so that I can
|
||||
;;; merge them into the master source.
|
||||
;;; - Olin Shivers (shivers@cs.cmu.edu)
|
||||
;;; - Simon Marshall (simon@gnu.ai.mit.edu)
|
||||
;; Please send me bug reports, bug fixes, and extensions, so that I can
|
||||
;; merge them into the master source.
|
||||
;; - Olin Shivers (shivers@cs.cmu.edu)
|
||||
;; - Simon Marshall (simon@gnu.ai.mit.edu)
|
||||
|
||||
;;; This file defines a general command-interpreter-in-a-buffer package
|
||||
;;; (comint mode). The idea is that you can build specific process-in-a-buffer
|
||||
;;; modes on top of comint mode -- e.g., lisp, shell, scheme, T, soar, ....
|
||||
;;; This way, all these specific packages share a common base functionality,
|
||||
;;; and a common set of bindings, which makes them easier to use (and
|
||||
;;; saves code, implementation time, etc., etc.).
|
||||
;; This file defines a general command-interpreter-in-a-buffer package
|
||||
;; (comint mode). The idea is that you can build specific process-in-a-buffer
|
||||
;; modes on top of comint mode -- e.g., lisp, shell, scheme, T, soar, ....
|
||||
;; This way, all these specific packages share a common base functionality,
|
||||
;; and a common set of bindings, which makes them easier to use (and
|
||||
;; saves code, implementation time, etc., etc.).
|
||||
|
||||
;;; Several packages are already defined using comint mode:
|
||||
;;; - shell.el defines a shell-in-a-buffer mode.
|
||||
;;; - cmulisp.el defines a simple lisp-in-a-buffer mode.
|
||||
;;;
|
||||
;;; - The file cmuscheme.el defines a scheme-in-a-buffer mode.
|
||||
;;; - The file tea.el tunes scheme and inferior-scheme modes for T.
|
||||
;;; - The file soar.el tunes lisp and inferior-lisp modes for Soar.
|
||||
;;; - cmutex.el defines tex and latex modes that invoke tex, latex, bibtex,
|
||||
;;; previewers, and printers from within emacs.
|
||||
;;; - background.el allows csh-like job control inside emacs.
|
||||
;;; It is pretty easy to make new derived modes for other processes.
|
||||
;; Several packages are already defined using comint mode:
|
||||
;; - shell.el defines a shell-in-a-buffer mode.
|
||||
;; - cmulisp.el defines a simple lisp-in-a-buffer mode.
|
||||
;;
|
||||
;; - The file cmuscheme.el defines a scheme-in-a-buffer mode.
|
||||
;; - The file tea.el tunes scheme and inferior-scheme modes for T.
|
||||
;; - The file soar.el tunes lisp and inferior-lisp modes for Soar.
|
||||
;; - cmutex.el defines tex and latex modes that invoke tex, latex, bibtex,
|
||||
;; previewers, and printers from within emacs.
|
||||
;; - background.el allows csh-like job control inside emacs.
|
||||
;; It is pretty easy to make new derived modes for other processes.
|
||||
|
||||
;;; For documentation on the functionality provided by comint mode, and
|
||||
;;; the hooks available for customising it, see the comments below.
|
||||
;;; For further information on the standard derived modes (shell,
|
||||
;;; inferior-lisp, inferior-scheme, ...), see the relevant source files.
|
||||
;; For documentation on the functionality provided by comint mode, and
|
||||
;; the hooks available for customising it, see the comments below.
|
||||
;; For further information on the standard derived modes (shell,
|
||||
;; inferior-lisp, inferior-scheme, ...), see the relevant source files.
|
||||
|
||||
;;; For hints on converting existing process modes (e.g., tex-mode,
|
||||
;;; background, dbx, gdb, kermit, prolog, telnet) to use comint-mode
|
||||
;;; instead of shell-mode, see the notes at the end of this file.
|
||||
;; For hints on converting existing process modes (e.g., tex-mode,
|
||||
;; background, dbx, gdb, kermit, prolog, telnet) to use comint-mode
|
||||
;; instead of shell-mode, see the notes at the end of this file.
|
||||
|
||||
|
||||
;;; Brief Command Documentation:
|
||||
;;;============================================================================
|
||||
;;; Comint Mode Commands: (common to all derived modes, like shell & cmulisp
|
||||
;;; mode)
|
||||
;;;
|
||||
;;; m-p comint-previous-input Cycle backwards in input history
|
||||
;;; m-n comint-next-input Cycle forwards
|
||||
;;; m-r comint-previous-matching-input Previous input matching a regexp
|
||||
;;; m-s comint-next-matching-input Next input that matches
|
||||
;;; m-c-l comint-show-output Show last batch of process output
|
||||
;;; return comint-send-input
|
||||
;;; c-d comint-delchar-or-maybe-eof Delete char unless at end of buff
|
||||
;;; c-c c-a comint-bol Beginning of line; skip prompt
|
||||
;;; c-c c-u comint-kill-input ^u
|
||||
;;; c-c c-w backward-kill-word ^w
|
||||
;;; c-c c-c comint-interrupt-subjob ^c
|
||||
;;; c-c c-z comint-stop-subjob ^z
|
||||
;;; c-c c-\ comint-quit-subjob ^\
|
||||
;;; c-c c-o comint-kill-output Delete last batch of process output
|
||||
;;; c-c c-r comint-show-output Show last batch of process output
|
||||
;;; c-c c-l comint-dynamic-list-input-ring List input history
|
||||
;;;
|
||||
;;; Not bound by default in comint-mode (some are in shell mode)
|
||||
;;; comint-run Run a program under comint-mode
|
||||
;;; send-invisible Read a line w/o echo, and send to proc
|
||||
;;; comint-dynamic-complete-filename Complete filename at point.
|
||||
;;; comint-dynamic-complete-variable Complete variable name at point.
|
||||
;;; comint-dynamic-list-filename-completions List completions in help buffer.
|
||||
;;; comint-replace-by-expanded-filename Expand and complete filename at point;
|
||||
;;; replace with expanded/completed name.
|
||||
;;; comint-replace-by-expanded-history Expand history at point;
|
||||
;;; replace with expanded name.
|
||||
;;; comint-magic-space Expand history and add (a) space(s).
|
||||
;;; comint-kill-subjob No mercy.
|
||||
;;; comint-show-maximum-output Show as much output as possible.
|
||||
;;; comint-continue-subjob Send CONT signal to buffer's process
|
||||
;;; group. Useful if you accidentally
|
||||
;;; suspend your process (with C-c C-z).
|
||||
;; Brief Command Documentation:
|
||||
;;============================================================================
|
||||
;; Comint Mode Commands: (common to all derived modes, like shell & cmulisp
|
||||
;; mode)
|
||||
;;
|
||||
;; m-p comint-previous-input Cycle backwards in input history
|
||||
;; m-n comint-next-input Cycle forwards
|
||||
;; m-r comint-previous-matching-input Previous input matching a regexp
|
||||
;; m-s comint-next-matching-input Next input that matches
|
||||
;; m-c-l comint-show-output Show last batch of process output
|
||||
;; return comint-send-input
|
||||
;; c-d comint-delchar-or-maybe-eof Delete char unless at end of buff
|
||||
;; c-c c-a comint-bol Beginning of line; skip prompt
|
||||
;; c-c c-u comint-kill-input ^u
|
||||
;; c-c c-w backward-kill-word ^w
|
||||
;; c-c c-c comint-interrupt-subjob ^c
|
||||
;; c-c c-z comint-stop-subjob ^z
|
||||
;; c-c c-\ comint-quit-subjob ^\
|
||||
;; c-c c-o comint-kill-output Delete last batch of process output
|
||||
;; c-c c-r comint-show-output Show last batch of process output
|
||||
;; c-c c-l comint-dynamic-list-input-ring List input history
|
||||
;;
|
||||
;; Not bound by default in comint-mode (some are in shell mode)
|
||||
;; comint-run Run a program under comint-mode
|
||||
;; send-invisible Read a line w/o echo, and send to proc
|
||||
;; comint-dynamic-complete-filename Complete filename at point.
|
||||
;; comint-dynamic-complete-variable Complete variable name at point.
|
||||
;; comint-dynamic-list-filename-completions List completions in help buffer.
|
||||
;; comint-replace-by-expanded-filename Expand and complete filename at point;
|
||||
;; replace with expanded/completed name.
|
||||
;; comint-replace-by-expanded-history Expand history at point;
|
||||
;; replace with expanded name.
|
||||
;; comint-magic-space Expand history and add (a) space(s).
|
||||
;; comint-kill-subjob No mercy.
|
||||
;; comint-show-maximum-output Show as much output as possible.
|
||||
;; comint-continue-subjob Send CONT signal to buffer's process
|
||||
;; group. Useful if you accidentally
|
||||
;; suspend your process (with C-c C-z).
|
||||
|
||||
;;; comint-mode-hook is the comint mode hook. Basically for your keybindings.
|
||||
;; comint-mode-hook is the comint mode hook. Basically for your keybindings.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ring)
|
||||
|
||||
;;; Buffer Local Variables:
|
||||
;;;============================================================================
|
||||
;;; Comint mode buffer local variables:
|
||||
;;; comint-prompt-regexp - string comint-bol uses to match prompt
|
||||
;;; comint-delimiter-argument-list - list For delimiters and arguments
|
||||
;;; comint-last-input-start - marker Handy if inferior always echoes
|
||||
;;; comint-last-input-end - marker For comint-kill-output command
|
||||
;;; comint-input-ring-size - integer For the input history
|
||||
;;; comint-input-ring - ring mechanism
|
||||
;;; comint-input-ring-index - number ...
|
||||
;;; comint-input-autoexpand - symbol ...
|
||||
;;; comint-input-ignoredups - boolean ...
|
||||
;;; comint-last-input-match - string ...
|
||||
;;; comint-dynamic-complete-functions - hook For the completion mechanism
|
||||
;;; comint-completion-fignore - list ...
|
||||
;;; comint-file-name-quote-list - list ...
|
||||
;;; comint-get-old-input - function Hooks for specific
|
||||
;;; comint-input-filter-functions - hook process-in-a-buffer
|
||||
;;; comint-output-filter-functions - hook function modes.
|
||||
;;; comint-input-filter - function ...
|
||||
;;; comint-input-sender - function ...
|
||||
;;; comint-eol-on-send - boolean ...
|
||||
;;; comint-process-echoes - boolean ...
|
||||
;;; comint-scroll-to-bottom-on-input - symbol For scroll behavior
|
||||
;;; comint-scroll-to-bottom-on-output - symbol ...
|
||||
;;; comint-scroll-show-maximum-output - boolean...
|
||||
;;;
|
||||
;;; Comint mode non-buffer local variables:
|
||||
;;; comint-completion-addsuffix - boolean/cons For file name completion
|
||||
;;; comint-completion-autolist - boolean behavior
|
||||
;;; comint-completion-recexact - boolean ...
|
||||
;; Buffer Local Variables:
|
||||
;;============================================================================
|
||||
;; Comint mode buffer local variables:
|
||||
;; comint-prompt-regexp - string comint-bol uses to match prompt
|
||||
;; comint-delimiter-argument-list - list For delimiters and arguments
|
||||
;; comint-last-input-start - marker Handy if inferior always echoes
|
||||
;; comint-last-input-end - marker For comint-kill-output command
|
||||
;; comint-input-ring-size - integer For the input history
|
||||
;; comint-input-ring - ring mechanism
|
||||
;; comint-input-ring-index - number ...
|
||||
;; comint-input-autoexpand - symbol ...
|
||||
;; comint-input-ignoredups - boolean ...
|
||||
;; comint-last-input-match - string ...
|
||||
;; comint-dynamic-complete-functions - hook For the completion mechanism
|
||||
;; comint-completion-fignore - list ...
|
||||
;; comint-file-name-quote-list - list ...
|
||||
;; comint-get-old-input - function Hooks for specific
|
||||
;; comint-input-filter-functions - hook process-in-a-buffer
|
||||
;; comint-output-filter-functions - hook function modes.
|
||||
;; comint-input-filter - function ...
|
||||
;; comint-input-sender - function ...
|
||||
;; comint-eol-on-send - boolean ...
|
||||
;; comint-process-echoes - boolean ...
|
||||
;; comint-scroll-to-bottom-on-input - symbol For scroll behavior
|
||||
;; comint-scroll-to-bottom-on-output - symbol ...
|
||||
;; comint-scroll-show-maximum-output - boolean...
|
||||
;;
|
||||
;; Comint mode non-buffer local variables:
|
||||
;; comint-completion-addsuffix - boolean/cons For file name completion
|
||||
;; comint-completion-autolist - boolean behavior
|
||||
;; comint-completion-recexact - boolean ...
|
||||
|
||||
(defvar comint-prompt-regexp "^"
|
||||
"Regexp to recognise prompts in the inferior process.
|
||||
|
@ -230,7 +231,7 @@ This variable is buffer-local.")
|
|||
"*Regexp matching prompts for passwords in the inferior process.
|
||||
This is used by `comint-watch-for-password-prompt'.")
|
||||
|
||||
;;; Here are the per-interpreter hooks.
|
||||
;; Here are the per-interpreter hooks.
|
||||
(defvar comint-get-old-input (function comint-get-old-input-default)
|
||||
"Function that returns old text in comint mode.
|
||||
This function is called when return is typed while the point is in old text.
|
||||
|
@ -500,9 +501,9 @@ BUFFER can be either a buffer or the name of one."
|
|||
(let ((proc (get-buffer-process buffer)))
|
||||
(and proc (memq (process-status proc) '(open run stop)))))
|
||||
|
||||
;;; Note that this guy, unlike shell.el's make-shell, barfs if you pass it ()
|
||||
;;; for the second argument (program).
|
||||
;;;###autoload
|
||||
;; Note that this guy, unlike shell.el's make-shell, barfs if you pass it ()
|
||||
;; for the second argument (program).
|
||||
;;###autoload
|
||||
(defun make-comint (name program &optional startfile &rest switches)
|
||||
"Make a comint process NAME in a buffer, running PROGRAM.
|
||||
The name of the buffer is made by surrounding NAME with `*'s.
|
||||
|
@ -525,7 +526,7 @@ If PROGRAM is a string, any more args are arguments to PROGRAM."
|
|||
(comint-exec buffer name program startfile switches)))
|
||||
buffer))
|
||||
|
||||
;;;###autoload
|
||||
;;###autoload
|
||||
(defun comint-run (program)
|
||||
"Run PROGRAM in a comint buffer and switch to it.
|
||||
The buffer name is made by surrounding the file name of PROGRAM with `*'s.
|
||||
|
@ -573,8 +574,8 @@ buffer. The hook `comint-exec-hook' is run after each exec."
|
|||
(run-hooks 'comint-exec-hook)
|
||||
buffer)))
|
||||
|
||||
;;; This auxiliary function cranks up the process for comint-exec in
|
||||
;;; the appropriate environment.
|
||||
;; This auxiliary function cranks up the process for comint-exec in
|
||||
;; the appropriate environment.
|
||||
|
||||
(defun comint-exec-1 (name buffer command switches)
|
||||
(let ((process-environment
|
||||
|
@ -599,28 +600,28 @@ buffer. The hook `comint-exec-hook' is run after each exec."
|
|||
"/")))
|
||||
(apply 'start-process name buffer command switches)))
|
||||
|
||||
;;; Input history processing in a buffer
|
||||
;;; ===========================================================================
|
||||
;;; Useful input history functions, courtesy of the Ergo group.
|
||||
;; Input history processing in a buffer
|
||||
;; ===========================================================================
|
||||
;; Useful input history functions, courtesy of the Ergo group.
|
||||
|
||||
;;; Eleven commands:
|
||||
;;; comint-dynamic-list-input-ring List history in help buffer.
|
||||
;;; comint-previous-input Previous input...
|
||||
;;; comint-previous-matching-input ...matching a string.
|
||||
;;; comint-previous-matching-input-from-input ... matching the current input.
|
||||
;;; comint-next-input Next input...
|
||||
;;; comint-next-matching-input ...matching a string.
|
||||
;;; comint-next-matching-input-from-input ... matching the current input.
|
||||
;;; comint-backward-matching-input Backwards input...
|
||||
;;; comint-forward-matching-input ...matching a string.
|
||||
;;; comint-replace-by-expanded-history Expand history at point;
|
||||
;;; replace with expanded history.
|
||||
;;; comint-magic-space Expand history and insert space.
|
||||
;;;
|
||||
;;; Three functions:
|
||||
;;; comint-read-input-ring Read into comint-input-ring...
|
||||
;;; comint-write-input-ring Write to comint-input-ring-file-name.
|
||||
;;; comint-replace-by-expanded-history-before-point Workhorse function.
|
||||
;; Eleven commands:
|
||||
;; comint-dynamic-list-input-ring List history in help buffer.
|
||||
;; comint-previous-input Previous input...
|
||||
;; comint-previous-matching-input ...matching a string.
|
||||
;; comint-previous-matching-input-from-input ... matching the current input.
|
||||
;; comint-next-input Next input...
|
||||
;; comint-next-matching-input ...matching a string.
|
||||
;; comint-next-matching-input-from-input ... matching the current input.
|
||||
;; comint-backward-matching-input Backwards input...
|
||||
;; comint-forward-matching-input ...matching a string.
|
||||
;; comint-replace-by-expanded-history Expand history at point;
|
||||
;; replace with expanded history.
|
||||
;; comint-magic-space Expand history and insert space.
|
||||
;;
|
||||
;; Three functions:
|
||||
;; comint-read-input-ring Read into comint-input-ring...
|
||||
;; comint-write-input-ring Write to comint-input-ring-file-name.
|
||||
;; comint-replace-by-expanded-history-before-point Workhorse function.
|
||||
|
||||
(defun comint-read-input-ring (&optional silent)
|
||||
"Sets the buffer's `comint-input-ring' from a history file.
|
||||
|
@ -1097,9 +1098,9 @@ Argument 0 is the command name."
|
|||
(mapconcat
|
||||
(function (lambda (a) a)) (nthcdr n (nreverse (nthcdr m args))) " "))))
|
||||
|
||||
;;;
|
||||
;;; Input processing stuff
|
||||
;;;
|
||||
;;
|
||||
;; Input processing stuff
|
||||
;;
|
||||
|
||||
(defun comint-send-input ()
|
||||
"Send input to process.
|
||||
|
@ -1377,10 +1378,10 @@ The prompt skip is done by skipping text matching the regular expression
|
|||
(beginning-of-line)
|
||||
(if (null arg) (comint-skip-prompt)))
|
||||
|
||||
;;; These three functions are for entering text you don't want echoed or
|
||||
;;; saved -- typically passwords to ftp, telnet, or somesuch.
|
||||
;;; Just enter m-x send-invisible and type in your line, or add
|
||||
;;; `comint-watch-for-password-prompt' to `comint-output-filter-functions'.
|
||||
;; These three functions are for entering text you don't want echoed or
|
||||
;; saved -- typically passwords to ftp, telnet, or somesuch.
|
||||
;; Just enter m-x send-invisible and type in your line, or add
|
||||
;; `comint-watch-for-password-prompt' to `comint-output-filter-functions'.
|
||||
|
||||
(defun comint-read-noecho (prompt &optional stars)
|
||||
"Read a single line of text from user without echoing, and return it.
|
||||
|
@ -1455,12 +1456,12 @@ This function could be in the list `comint-output-filter-functions'."
|
|||
(if (string-match comint-password-prompt-regexp string)
|
||||
(send-invisible nil)))
|
||||
|
||||
;;; Low-level process communication
|
||||
;; Low-level process communication
|
||||
|
||||
(defalias 'comint-send-string 'process-send-string)
|
||||
(defalias 'comint-send-region 'process-send-region)
|
||||
|
||||
;;; Random input hackage
|
||||
;; Random input hackage
|
||||
|
||||
(defun comint-kill-output ()
|
||||
"Kill all output from interpreter since last input.
|
||||
|
@ -1581,67 +1582,67 @@ See `comint-prompt-regexp'."
|
|||
(interactive "p")
|
||||
(comint-next-prompt (- n)))
|
||||
|
||||
;;; Support for source-file processing commands.
|
||||
;;;============================================================================
|
||||
;;; Many command-interpreters (e.g., Lisp, Scheme, Soar) have
|
||||
;;; commands that process files of source text (e.g. loading or compiling
|
||||
;;; files). So the corresponding process-in-a-buffer modes have commands
|
||||
;;; for doing this (e.g., lisp-load-file). The functions below are useful
|
||||
;;; for defining these commands.
|
||||
;;;
|
||||
;;; Alas, these guys don't do exactly the right thing for Lisp, Scheme
|
||||
;;; and Soar, in that they don't know anything about file extensions.
|
||||
;;; So the compile/load interface gets the wrong default occasionally.
|
||||
;;; The load-file/compile-file default mechanism could be smarter -- it
|
||||
;;; doesn't know about the relationship between filename extensions and
|
||||
;;; whether the file is source or executable. If you compile foo.lisp
|
||||
;;; with compile-file, then the next load-file should use foo.bin for
|
||||
;;; the default, not foo.lisp. This is tricky to do right, particularly
|
||||
;;; because the extension for executable files varies so much (.o, .bin,
|
||||
;;; .lbin, .mo, .vo, .ao, ...).
|
||||
;; Support for source-file processing commands.
|
||||
;;============================================================================
|
||||
;; Many command-interpreters (e.g., Lisp, Scheme, Soar) have
|
||||
;; commands that process files of source text (e.g. loading or compiling
|
||||
;; files). So the corresponding process-in-a-buffer modes have commands
|
||||
;; for doing this (e.g., lisp-load-file). The functions below are useful
|
||||
;; for defining these commands.
|
||||
;;
|
||||
;; Alas, these guys don't do exactly the right thing for Lisp, Scheme
|
||||
;; and Soar, in that they don't know anything about file extensions.
|
||||
;; So the compile/load interface gets the wrong default occasionally.
|
||||
;; The load-file/compile-file default mechanism could be smarter -- it
|
||||
;; doesn't know about the relationship between filename extensions and
|
||||
;; whether the file is source or executable. If you compile foo.lisp
|
||||
;; with compile-file, then the next load-file should use foo.bin for
|
||||
;; the default, not foo.lisp. This is tricky to do right, particularly
|
||||
;; because the extension for executable files varies so much (.o, .bin,
|
||||
;; .lbin, .mo, .vo, .ao, ...).
|
||||
|
||||
|
||||
;;; COMINT-SOURCE-DEFAULT -- determines defaults for source-file processing
|
||||
;;; commands.
|
||||
;;;
|
||||
;;; COMINT-CHECK-SOURCE -- if FNAME is in a modified buffer, asks you if you
|
||||
;;; want to save the buffer before issuing any process requests to the command
|
||||
;;; interpreter.
|
||||
;;;
|
||||
;;; COMINT-GET-SOURCE -- used by the source-file processing commands to prompt
|
||||
;;; for the file to process.
|
||||
;; COMINT-SOURCE-DEFAULT -- determines defaults for source-file processing
|
||||
;; commands.
|
||||
;;
|
||||
;; COMINT-CHECK-SOURCE -- if FNAME is in a modified buffer, asks you if you
|
||||
;; want to save the buffer before issuing any process requests to the command
|
||||
;; interpreter.
|
||||
;;
|
||||
;; COMINT-GET-SOURCE -- used by the source-file processing commands to prompt
|
||||
;; for the file to process.
|
||||
|
||||
;;; (COMINT-SOURCE-DEFAULT previous-dir/file source-modes)
|
||||
;;;============================================================================
|
||||
;;; This function computes the defaults for the load-file and compile-file
|
||||
;;; commands for tea, soar, cmulisp, and cmuscheme modes.
|
||||
;;;
|
||||
;;; - PREVIOUS-DIR/FILE is a pair (directory . filename) from the last
|
||||
;;; source-file processing command. NIL if there hasn't been one yet.
|
||||
;;; - SOURCE-MODES is a list used to determine what buffers contain source
|
||||
;;; files: if the major mode of the buffer is in SOURCE-MODES, it's source.
|
||||
;;; Typically, (lisp-mode) or (scheme-mode).
|
||||
;;;
|
||||
;;; If the command is given while the cursor is inside a string, *and*
|
||||
;;; the string is an existing filename, *and* the filename is not a directory,
|
||||
;;; then the string is taken as default. This allows you to just position
|
||||
;;; your cursor over a string that's a filename and have it taken as default.
|
||||
;;;
|
||||
;;; If the command is given in a file buffer whose major mode is in
|
||||
;;; SOURCE-MODES, then the the filename is the default file, and the
|
||||
;;; file's directory is the default directory.
|
||||
;;;
|
||||
;;; If the buffer isn't a source file buffer (e.g., it's the process buffer),
|
||||
;;; then the default directory & file are what was used in the last source-file
|
||||
;;; processing command (i.e., PREVIOUS-DIR/FILE). If this is the first time
|
||||
;;; the command has been run (PREVIOUS-DIR/FILE is nil), the default directory
|
||||
;;; is the cwd, with no default file. (\"no default file\" = nil)
|
||||
;;;
|
||||
;;; SOURCE-REGEXP is typically going to be something like (tea-mode)
|
||||
;;; for T programs, (lisp-mode) for Lisp programs, (soar-mode lisp-mode)
|
||||
;;; for Soar programs, etc.
|
||||
;;;
|
||||
;;; The function returns a pair: (default-directory . default-file).
|
||||
;; (COMINT-SOURCE-DEFAULT previous-dir/file source-modes)
|
||||
;;============================================================================
|
||||
;; This function computes the defaults for the load-file and compile-file
|
||||
;; commands for tea, soar, cmulisp, and cmuscheme modes.
|
||||
;;
|
||||
;; - PREVIOUS-DIR/FILE is a pair (directory . filename) from the last
|
||||
;; source-file processing command. NIL if there hasn't been one yet.
|
||||
;; - SOURCE-MODES is a list used to determine what buffers contain source
|
||||
;; files: if the major mode of the buffer is in SOURCE-MODES, it's source.
|
||||
;; Typically, (lisp-mode) or (scheme-mode).
|
||||
;;
|
||||
;; If the command is given while the cursor is inside a string, *and*
|
||||
;; the string is an existing filename, *and* the filename is not a directory,
|
||||
;; then the string is taken as default. This allows you to just position
|
||||
;; your cursor over a string that's a filename and have it taken as default.
|
||||
;;
|
||||
;; If the command is given in a file buffer whose major mode is in
|
||||
;; SOURCE-MODES, then the the filename is the default file, and the
|
||||
;; file's directory is the default directory.
|
||||
;;
|
||||
;; If the buffer isn't a source file buffer (e.g., it's the process buffer),
|
||||
;; then the default directory & file are what was used in the last source-file
|
||||
;; processing command (i.e., PREVIOUS-DIR/FILE). If this is the first time
|
||||
;; the command has been run (PREVIOUS-DIR/FILE is nil), the default directory
|
||||
;; is the cwd, with no default file. (\"no default file\" = nil)
|
||||
;;
|
||||
;; SOURCE-REGEXP is typically going to be something like (tea-mode)
|
||||
;; for T programs, (lisp-mode) for Lisp programs, (soar-mode lisp-mode)
|
||||
;; for Soar programs, etc.
|
||||
;;
|
||||
;; The function returns a pair: (default-directory . default-file).
|
||||
|
||||
(defun comint-source-default (previous-dir/file source-modes)
|
||||
(cond ((and buffer-file-name (memq major-mode source-modes))
|
||||
|
@ -1652,13 +1653,13 @@ See `comint-prompt-regexp'."
|
|||
(cons default-directory nil))))
|
||||
|
||||
|
||||
;;; (COMINT-CHECK-SOURCE fname)
|
||||
;;;============================================================================
|
||||
;;; Prior to loading or compiling (or otherwise processing) a file (in the CMU
|
||||
;;; process-in-a-buffer modes), this function can be called on the filename.
|
||||
;;; If the file is loaded into a buffer, and the buffer is modified, the user
|
||||
;;; is queried to see if he wants to save the buffer before proceeding with
|
||||
;;; the load or compile.
|
||||
;; (COMINT-CHECK-SOURCE fname)
|
||||
;;============================================================================
|
||||
;; Prior to loading or compiling (or otherwise processing) a file (in the CMU
|
||||
;; process-in-a-buffer modes), this function can be called on the filename.
|
||||
;; If the file is loaded into a buffer, and the buffer is modified, the user
|
||||
;; is queried to see if he wants to save the buffer before proceeding with
|
||||
;; the load or compile.
|
||||
|
||||
(defun comint-check-source (fname)
|
||||
(let ((buff (get-file-buffer fname)))
|
||||
|
@ -1672,27 +1673,27 @@ See `comint-prompt-regexp'."
|
|||
(set-buffer old-buffer)))))
|
||||
|
||||
|
||||
;;; (COMINT-GET-SOURCE prompt prev-dir/file source-modes mustmatch-p)
|
||||
;;;============================================================================
|
||||
;;; COMINT-GET-SOURCE is used to prompt for filenames in command-interpreter
|
||||
;;; commands that process source files (like loading or compiling a file).
|
||||
;;; It prompts for the filename, provides a default, if there is one,
|
||||
;;; and returns the result filename.
|
||||
;;;
|
||||
;;; See COMINT-SOURCE-DEFAULT for more on determining defaults.
|
||||
;;;
|
||||
;;; PROMPT is the prompt string. PREV-DIR/FILE is the (directory . file) pair
|
||||
;;; from the last source processing command. SOURCE-MODES is a list of major
|
||||
;;; modes used to determine what file buffers contain source files. (These
|
||||
;;; two arguments are used for determining defaults). If MUSTMATCH-P is true,
|
||||
;;; then the filename reader will only accept a file that exists.
|
||||
;;;
|
||||
;;; A typical use:
|
||||
;;; (interactive (comint-get-source "Compile file: " prev-lisp-dir/file
|
||||
;;; '(lisp-mode) t))
|
||||
;; (COMINT-GET-SOURCE prompt prev-dir/file source-modes mustmatch-p)
|
||||
;;============================================================================
|
||||
;; COMINT-GET-SOURCE is used to prompt for filenames in command-interpreter
|
||||
;; commands that process source files (like loading or compiling a file).
|
||||
;; It prompts for the filename, provides a default, if there is one,
|
||||
;; and returns the result filename.
|
||||
;;
|
||||
;; See COMINT-SOURCE-DEFAULT for more on determining defaults.
|
||||
;;
|
||||
;; PROMPT is the prompt string. PREV-DIR/FILE is the (directory . file) pair
|
||||
;; from the last source processing command. SOURCE-MODES is a list of major
|
||||
;; modes used to determine what file buffers contain source files. (These
|
||||
;; two arguments are used for determining defaults). If MUSTMATCH-P is true,
|
||||
;; then the filename reader will only accept a file that exists.
|
||||
;;
|
||||
;; A typical use:
|
||||
;; (interactive (comint-get-source "Compile file: " prev-lisp-dir/file
|
||||
;; '(lisp-mode) t))
|
||||
|
||||
;;; This is pretty stupid about strings. It decides we're in a string
|
||||
;;; if there's a quote on both sides of point on the current line.
|
||||
;; This is pretty stupid about strings. It decides we're in a string
|
||||
;; if there's a quote on both sides of point on the current line.
|
||||
(defun comint-extract-string ()
|
||||
"Return string around POINT that starts the current line, or nil."
|
||||
(save-excursion
|
||||
|
@ -1728,30 +1729,30 @@ See `comint-prompt-regexp'."
|
|||
mustmatch-p)))
|
||||
(list (expand-file-name (substitute-in-file-name ans)))))
|
||||
|
||||
;;; I am somewhat divided on this string-default feature. It seems
|
||||
;;; to violate the principle-of-least-astonishment, in that it makes
|
||||
;;; the default harder to predict, so you actually have to look and see
|
||||
;;; what the default really is before choosing it. This can trip you up.
|
||||
;;; On the other hand, it can be useful, I guess. I would appreciate feedback
|
||||
;;; on this.
|
||||
;;; -Olin
|
||||
;; I am somewhat divided on this string-default feature. It seems
|
||||
;; to violate the principle-of-least-astonishment, in that it makes
|
||||
;; the default harder to predict, so you actually have to look and see
|
||||
;; what the default really is before choosing it. This can trip you up.
|
||||
;; On the other hand, it can be useful, I guess. I would appreciate feedback
|
||||
;; on this.
|
||||
;; -Olin
|
||||
|
||||
|
||||
;;; Simple process query facility.
|
||||
;;; ===========================================================================
|
||||
;;; This function is for commands that want to send a query to the process
|
||||
;;; and show the response to the user. For example, a command to get the
|
||||
;;; arglist for a Common Lisp function might send a "(arglist 'foo)" query
|
||||
;;; to an inferior Common Lisp process.
|
||||
;;;
|
||||
;;; This simple facility just sends strings to the inferior process and pops
|
||||
;;; up a window for the process buffer so you can see what the process
|
||||
;;; responds with. We don't do anything fancy like try to intercept what the
|
||||
;;; process responds with and put it in a pop-up window or on the message
|
||||
;;; line. We just display the buffer. Low tech. Simple. Works good.
|
||||
;; Simple process query facility.
|
||||
;; ===========================================================================
|
||||
;; This function is for commands that want to send a query to the process
|
||||
;; and show the response to the user. For example, a command to get the
|
||||
;; arglist for a Common Lisp function might send a "(arglist 'foo)" query
|
||||
;; to an inferior Common Lisp process.
|
||||
;;
|
||||
;; This simple facility just sends strings to the inferior process and pops
|
||||
;; up a window for the process buffer so you can see what the process
|
||||
;; responds with. We don't do anything fancy like try to intercept what the
|
||||
;; process responds with and put it in a pop-up window or on the message
|
||||
;; line. We just display the buffer. Low tech. Simple. Works good.
|
||||
|
||||
;;; Send to the inferior process PROC the string STR. Pop-up but do not select
|
||||
;;; a window for the inferior process so that its response can be seen.
|
||||
;; Send to the inferior process PROC the string STR. Pop-up but do not select
|
||||
;; a window for the inferior process so that its response can be seen.
|
||||
(defun comint-proc-query (proc str)
|
||||
(let* ((proc-buf (process-buffer proc))
|
||||
(proc-mark (process-mark proc)))
|
||||
|
@ -1773,27 +1774,27 @@ See `comint-prompt-regexp'."
|
|||
(set-window-point proc-win opoint)))))))
|
||||
|
||||
|
||||
;;; Filename/command/history completion in a buffer
|
||||
;;; ===========================================================================
|
||||
;;; Useful completion functions, courtesy of the Ergo group.
|
||||
;; Filename/command/history completion in a buffer
|
||||
;; ===========================================================================
|
||||
;; Useful completion functions, courtesy of the Ergo group.
|
||||
|
||||
;;; Six commands:
|
||||
;;; comint-dynamic-complete Complete or expand command, filename,
|
||||
;;; history at point.
|
||||
;;; comint-dynamic-complete-filename Complete filename at point.
|
||||
;;; comint-dynamic-list-filename-completions List completions in help buffer.
|
||||
;;; comint-replace-by-expanded-filename Expand and complete filename at point;
|
||||
;;; replace with expanded/completed name.
|
||||
;;; comint-dynamic-simple-complete Complete stub given candidates.
|
||||
;; Six commands:
|
||||
;; comint-dynamic-complete Complete or expand command, filename,
|
||||
;; history at point.
|
||||
;; comint-dynamic-complete-filename Complete filename at point.
|
||||
;; comint-dynamic-list-filename-completions List completions in help buffer.
|
||||
;; comint-replace-by-expanded-filename Expand and complete filename at point;
|
||||
;; replace with expanded/completed name.
|
||||
;; comint-dynamic-simple-complete Complete stub given candidates.
|
||||
|
||||
;;; These are not installed in the comint-mode keymap. But they are
|
||||
;;; available for people who want them. Shell-mode installs them:
|
||||
;;; (define-key shell-mode-map "\t" 'comint-dynamic-complete)
|
||||
;;; (define-key shell-mode-map "\M-?"
|
||||
;;; 'comint-dynamic-list-filename-completions)))
|
||||
;;;
|
||||
;;; Commands like this are fine things to put in load hooks if you
|
||||
;;; want them present in specific modes.
|
||||
;; These are not installed in the comint-mode keymap. But they are
|
||||
;; available for people who want them. Shell-mode installs them:
|
||||
;; (define-key shell-mode-map "\t" 'comint-dynamic-complete)
|
||||
;; (define-key shell-mode-map "\M-?"
|
||||
;; 'comint-dynamic-list-filename-completions)))
|
||||
;;
|
||||
;; Commands like this are fine things to put in load hooks if you
|
||||
;; want them present in specific modes.
|
||||
|
||||
(defvar comint-completion-autolist nil
|
||||
"*If non-nil, automatically list possibilities on partial completion.
|
||||
|
@ -2070,95 +2071,95 @@ Typing SPC flushes the help buffer."
|
|||
(set-window-configuration conf)
|
||||
(setq unread-command-events (listify-key-sequence key)))))))
|
||||
|
||||
;;; Converting process modes to use comint mode
|
||||
;;; ===========================================================================
|
||||
;;; The code in the Emacs 19 distribution has all been modified to use comint
|
||||
;;; where needed. However, there are `third-party' packages out there that
|
||||
;;; still use the old shell mode. Here's a guide to conversion.
|
||||
;;;
|
||||
;;; Renaming variables
|
||||
;;; Most of the work is renaming variables and functions. These are the common
|
||||
;;; ones:
|
||||
;;; Local variables:
|
||||
;;; last-input-start comint-last-input-start
|
||||
;;; last-input-end comint-last-input-end
|
||||
;;; shell-prompt-pattern comint-prompt-regexp
|
||||
;;; shell-set-directory-error-hook <no equivalent>
|
||||
;;; Miscellaneous:
|
||||
;;; shell-set-directory <unnecessary>
|
||||
;;; shell-mode-map comint-mode-map
|
||||
;;; Commands:
|
||||
;;; shell-send-input comint-send-input
|
||||
;;; shell-send-eof comint-delchar-or-maybe-eof
|
||||
;;; kill-shell-input comint-kill-input
|
||||
;;; interrupt-shell-subjob comint-interrupt-subjob
|
||||
;;; stop-shell-subjob comint-stop-subjob
|
||||
;;; quit-shell-subjob comint-quit-subjob
|
||||
;;; kill-shell-subjob comint-kill-subjob
|
||||
;;; kill-output-from-shell comint-kill-output
|
||||
;;; show-output-from-shell comint-show-output
|
||||
;;; copy-last-shell-input Use comint-previous-input/comint-next-input
|
||||
;;;
|
||||
;;; SHELL-SET-DIRECTORY is gone, its functionality taken over by
|
||||
;;; SHELL-DIRECTORY-TRACKER, the shell mode's comint-input-filter-functions.
|
||||
;;; Comint mode does not provide functionality equivalent to
|
||||
;;; shell-set-directory-error-hook; it is gone.
|
||||
;;;
|
||||
;;; comint-last-input-start is provided for modes which want to munge
|
||||
;;; the buffer after input is sent, perhaps because the inferior
|
||||
;;; insists on echoing the input. The LAST-INPUT-START variable in
|
||||
;;; the old shell package was used to implement a history mechanism,
|
||||
;;; but you should think twice before using comint-last-input-start
|
||||
;;; for this; the input history ring often does the job better.
|
||||
;;;
|
||||
;;; If you are implementing some process-in-a-buffer mode, called foo-mode, do
|
||||
;;; *not* create the comint-mode local variables in your foo-mode function.
|
||||
;;; This is not modular. Instead, call comint-mode, and let *it* create the
|
||||
;;; necessary comint-specific local variables. Then create the
|
||||
;;; foo-mode-specific local variables in foo-mode. Set the buffer's keymap to
|
||||
;;; be foo-mode-map, and its mode to be foo-mode. Set the comint-mode hooks
|
||||
;;; (comint-{prompt-regexp, input-filter, input-filter-functions,
|
||||
;;; get-old-input) that need to be different from the defaults. Call
|
||||
;;; foo-mode-hook, and you're done. Don't run the comint-mode hook yourself;
|
||||
;;; comint-mode will take care of it. The following example, from shell.el,
|
||||
;;; is typical:
|
||||
;;;
|
||||
;;; (defvar shell-mode-map '())
|
||||
;;; (cond ((not shell-mode-map)
|
||||
;;; (setq shell-mode-map (copy-keymap comint-mode-map))
|
||||
;;; (define-key shell-mode-map "\C-c\C-f" 'shell-forward-command)
|
||||
;;; (define-key shell-mode-map "\C-c\C-b" 'shell-backward-command)
|
||||
;;; (define-key shell-mode-map "\t" 'comint-dynamic-complete)
|
||||
;;; (define-key shell-mode-map "\M-?"
|
||||
;;; 'comint-dynamic-list-filename-completions)))
|
||||
;;;
|
||||
;;; (defun shell-mode ()
|
||||
;;; (interactive)
|
||||
;;; (comint-mode)
|
||||
;;; (setq comint-prompt-regexp shell-prompt-pattern)
|
||||
;;; (setq major-mode 'shell-mode)
|
||||
;;; (setq mode-name "Shell")
|
||||
;;; (use-local-map shell-mode-map)
|
||||
;;; (make-local-variable 'shell-directory-stack)
|
||||
;;; (setq shell-directory-stack nil)
|
||||
;;; (add-hook 'comint-input-filter-functions 'shell-directory-tracker)
|
||||
;;; (run-hooks 'shell-mode-hook))
|
||||
;;;
|
||||
;;;
|
||||
;;; Note that make-comint is different from make-shell in that it
|
||||
;;; doesn't have a default program argument. If you give make-shell
|
||||
;;; a program name of NIL, it cleverly chooses one of explicit-shell-name,
|
||||
;;; $ESHELL, $SHELL, or /bin/sh. If you give make-comint a program argument
|
||||
;;; of NIL, it barfs. Adjust your code accordingly...
|
||||
;;;
|
||||
;;; Completion for comint-mode users
|
||||
;;;
|
||||
;;; For modes that use comint-mode, comint-dynamic-complete-functions is the
|
||||
;;; hook to add completion functions to. Functions on this list should return
|
||||
;;; non-nil if completion occurs (i.e., further completion should not occur).
|
||||
;;; You could use comint-dynamic-simple-complete to do the bulk of the
|
||||
;;; completion job.
|
||||
;; Converting process modes to use comint mode
|
||||
;; ===========================================================================
|
||||
;; The code in the Emacs 19 distribution has all been modified to use comint
|
||||
;; where needed. However, there are `third-party' packages out there that
|
||||
;; still use the old shell mode. Here's a guide to conversion.
|
||||
;;
|
||||
;; Renaming variables
|
||||
;; Most of the work is renaming variables and functions. These are the common
|
||||
;; ones:
|
||||
;; Local variables:
|
||||
;; last-input-start comint-last-input-start
|
||||
;; last-input-end comint-last-input-end
|
||||
;; shell-prompt-pattern comint-prompt-regexp
|
||||
;; shell-set-directory-error-hook <no equivalent>
|
||||
;; Miscellaneous:
|
||||
;; shell-set-directory <unnecessary>
|
||||
;; shell-mode-map comint-mode-map
|
||||
;; Commands:
|
||||
;; shell-send-input comint-send-input
|
||||
;; shell-send-eof comint-delchar-or-maybe-eof
|
||||
;; kill-shell-input comint-kill-input
|
||||
;; interrupt-shell-subjob comint-interrupt-subjob
|
||||
;; stop-shell-subjob comint-stop-subjob
|
||||
;; quit-shell-subjob comint-quit-subjob
|
||||
;; kill-shell-subjob comint-kill-subjob
|
||||
;; kill-output-from-shell comint-kill-output
|
||||
;; show-output-from-shell comint-show-output
|
||||
;; copy-last-shell-input Use comint-previous-input/comint-next-input
|
||||
;;
|
||||
;; SHELL-SET-DIRECTORY is gone, its functionality taken over by
|
||||
;; SHELL-DIRECTORY-TRACKER, the shell mode's comint-input-filter-functions.
|
||||
;; Comint mode does not provide functionality equivalent to
|
||||
;; shell-set-directory-error-hook; it is gone.
|
||||
;;
|
||||
;; comint-last-input-start is provided for modes which want to munge
|
||||
;; the buffer after input is sent, perhaps because the inferior
|
||||
;; insists on echoing the input. The LAST-INPUT-START variable in
|
||||
;; the old shell package was used to implement a history mechanism,
|
||||
;; but you should think twice before using comint-last-input-start
|
||||
;; for this; the input history ring often does the job better.
|
||||
;;
|
||||
;; If you are implementing some process-in-a-buffer mode, called foo-mode, do
|
||||
;; *not* create the comint-mode local variables in your foo-mode function.
|
||||
;; This is not modular. Instead, call comint-mode, and let *it* create the
|
||||
;; necessary comint-specific local variables. Then create the
|
||||
;; foo-mode-specific local variables in foo-mode. Set the buffer's keymap to
|
||||
;; be foo-mode-map, and its mode to be foo-mode. Set the comint-mode hooks
|
||||
;; (comint-{prompt-regexp, input-filter, input-filter-functions,
|
||||
;; get-old-input) that need to be different from the defaults. Call
|
||||
;; foo-mode-hook, and you're done. Don't run the comint-mode hook yourself;
|
||||
;; comint-mode will take care of it. The following example, from shell.el,
|
||||
;; is typical:
|
||||
;;
|
||||
;; (defvar shell-mode-map '())
|
||||
;; (cond ((not shell-mode-map)
|
||||
;; (setq shell-mode-map (copy-keymap comint-mode-map))
|
||||
;; (define-key shell-mode-map "\C-c\C-f" 'shell-forward-command)
|
||||
;; (define-key shell-mode-map "\C-c\C-b" 'shell-backward-command)
|
||||
;; (define-key shell-mode-map "\t" 'comint-dynamic-complete)
|
||||
;; (define-key shell-mode-map "\M-?"
|
||||
;; 'comint-dynamic-list-filename-completions)))
|
||||
;;
|
||||
;; (defun shell-mode ()
|
||||
;; (interactive)
|
||||
;; (comint-mode)
|
||||
;; (setq comint-prompt-regexp shell-prompt-pattern)
|
||||
;; (setq major-mode 'shell-mode)
|
||||
;; (setq mode-name "Shell")
|
||||
;; (use-local-map shell-mode-map)
|
||||
;; (make-local-variable 'shell-directory-stack)
|
||||
;; (setq shell-directory-stack nil)
|
||||
;; (add-hook 'comint-input-filter-functions 'shell-directory-tracker)
|
||||
;; (run-hooks 'shell-mode-hook))
|
||||
;;
|
||||
;;
|
||||
;; Note that make-comint is different from make-shell in that it
|
||||
;; doesn't have a default program argument. If you give make-shell
|
||||
;; a program name of NIL, it cleverly chooses one of explicit-shell-name,
|
||||
;; $ESHELL, $SHELL, or /bin/sh. If you give make-comint a program argument
|
||||
;; of NIL, it barfs. Adjust your code accordingly...
|
||||
;;
|
||||
;; Completion for comint-mode users
|
||||
;;
|
||||
;; For modes that use comint-mode, comint-dynamic-complete-functions is the
|
||||
;; hook to add completion functions to. Functions on this list should return
|
||||
;; non-nil if completion occurs (i.e., further completion should not occur).
|
||||
;; You could use comint-dynamic-simple-complete to do the bulk of the
|
||||
;; completion job.
|
||||
|
||||
(provide 'comint)
|
||||
|
||||
;;; comint.el ends here
|
||||
;; comint.el ends here
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
1442
lisp/completion.el
1442
lisp/completion.el
File diff suppressed because it is too large
Load diff
|
@ -1,12 +1,30 @@
|
|||
;;; custom.el --- User friendly customization support.
|
||||
|
||||
;; Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
;;
|
||||
|
||||
;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
|
||||
;; Keywords: help
|
||||
;; Version: 0.5
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; 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.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; 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, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
|
||||
;; WARNING: This package is still under construction and not all of
|
||||
;; the features below are implemented.
|
||||
;;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
;;; dabbrev.el --- dynamic abbreviation package
|
||||
|
||||
;; Copyright (C) 1985, 1986, 1992, 1994 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Don Morrison
|
||||
|
@ -7,19 +8,22 @@
|
|||
;; Lindberg's last update version: 5.7
|
||||
;; Keywords: abbrev expand completion
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; 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 of the License, or
|
||||
;; (at your option) any later version.
|
||||
;;
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; the Free Software Foundation; either version 2, 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
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
;;
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program; if not, write to the Free Software
|
||||
;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
;; along with GNU Emacs; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
@ -90,11 +94,9 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;; Customization variables
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;----------------------------------------------------------------
|
||||
;; Customization variables
|
||||
;;----------------------------------------------------------------
|
||||
(defvar dabbrev-backward-only nil
|
||||
"*If non-nil, `dabbrev-expand' only looks backwards.")
|
||||
|
||||
|
@ -213,11 +215,9 @@ If this variable is non-nil, dabbrev will only look in these buffers.
|
|||
It will not even look in the current buffer if it is not a member of
|
||||
this list.")
|
||||
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;; Internal variables
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;----------------------------------------------------------------
|
||||
;; Internal variables
|
||||
;;----------------------------------------------------------------
|
||||
|
||||
;; Last obarray of completions in `dabbrev-completion'
|
||||
(defvar dabbrev--last-obarray nil)
|
||||
|
@ -258,11 +258,9 @@ this list.")
|
|||
;; The regexp for recognizing a character in an abbreviation.
|
||||
(defvar dabbrev--abbrev-char-regexp nil)
|
||||
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;; Macros
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;----------------------------------------------------------------
|
||||
;; Macros
|
||||
;;----------------------------------------------------------------
|
||||
|
||||
;;; Get the buffer that mini-buffer was activated from
|
||||
(defsubst dabbrev--minibuffer-origin ()
|
||||
|
@ -282,11 +280,9 @@ this list.")
|
|||
(setq dabbrev-tail (cdr dabbrev-tail)))
|
||||
(nreverse dabbrev-result))))
|
||||
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;; Exported functions
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;----------------------------------------------------------------
|
||||
;; Exported functions
|
||||
;;----------------------------------------------------------------
|
||||
|
||||
;;;###autoload
|
||||
(define-key esc-map "/" 'dabbrev-expand)
|
||||
|
@ -519,11 +515,9 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]."
|
|||
(setq dabbrev--last-abbreviation abbrev)
|
||||
(setq dabbrev--last-abbrev-location (point-marker))))))
|
||||
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;; Local functions
|
||||
;;;----------------------------------------------------------------
|
||||
;;;----------------------------------------------------------------
|
||||
;;----------------------------------------------------------------
|
||||
;; Local functions
|
||||
;;----------------------------------------------------------------
|
||||
|
||||
;;; Checks if OTHER-BUFFER has the same major mode as current buffer.
|
||||
(defun dabbrev--same-major-mode-p (other-buffer)
|
||||
|
@ -839,6 +833,4 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]."
|
|||
|
||||
(provide 'dabbrev)
|
||||
|
||||
;; dabbrev.el ends here
|
||||
|
||||
|
||||
;;; dabbrev.el ends here
|
||||
|
|
|
@ -1,32 +1,33 @@
|
|||
;;; delsel.el --- delete selection if you insert
|
||||
|
||||
;;; Copyright (C) 1992 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1992 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Matthieu Devin <devin@lucid.com>
|
||||
;; Created: 14 Jul 92
|
||||
;; Last change 18-Feb-93, devin.
|
||||
|
||||
;;; This file is part of GNU Emacs.
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;;; 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.
|
||||
;; 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.
|
||||
|
||||
;;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; 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.
|
||||
;; 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, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;; This file makes the active region be pending delete, meaning that
|
||||
;;; text inserted while the region is active will replace the region contents.
|
||||
;;; This is a popular behavior of personal computers text editors.
|
||||
;; This file makes the active region be pending delete, meaning that
|
||||
;; text inserted while the region is active will replace the region contents.
|
||||
;; This is a popular behavior of personal computers text editors.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
221
lisp/dired-x.el
221
lisp/dired-x.el
|
@ -22,115 +22,116 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;; This is Sebastian Kremer's excellent dired-x.el (Dired Extra), version
|
||||
;;; 1.191, hacked up for GNU Emacs 19. Redundant or conflicting material
|
||||
;;; has been removed or renamed in order to work properly with dired of
|
||||
;;; GNU Emacs 19. All suggestions or comments are most welcomed.
|
||||
;; This is Sebastian Kremer's excellent dired-x.el (Dired Extra), version
|
||||
;; 1.191, hacked up for GNU Emacs 19. Redundant or conflicting material
|
||||
;; has been removed or renamed in order to work properly with dired of
|
||||
;; GNU Emacs 19. All suggestions or comments are most welcomed.
|
||||
|
||||
;;;
|
||||
;;; Please, PLEASE, *PLEASE* see the info pages.
|
||||
;;;
|
||||
|
||||
;;; BUGS: Type M-x dired-x-submit-report and a report will be generated.
|
||||
;;
|
||||
;; Please, PLEASE, *PLEASE* see the info pages.
|
||||
;;
|
||||
|
||||
;;; INSTALLATION: In your ~/.emacs,
|
||||
;;;
|
||||
;;; (add-hook 'dired-load-hook
|
||||
;;; (function (lambda ()
|
||||
;;; (load "dired-x")
|
||||
;;; ;; Set global variables here. For example:
|
||||
;;; ;; (setq dired-guess-shell-gnutar "gtar")
|
||||
;;; )))
|
||||
;;; (add-hook 'dired-mode-hook
|
||||
;;; (function (lambda ()
|
||||
;;; ;; Set buffer-local variables here. For example:
|
||||
;;; ;; (setq dired-omit-files-p t)
|
||||
;;; )))
|
||||
;;;
|
||||
;;; At load time dired-x.el will install itself, redefine some functions, and
|
||||
;;; bind some dired keys. *Please* see the info pages for more details.
|
||||
;; BUGS: Type M-x dired-x-submit-report and a report will be generated.
|
||||
|
||||
;;; CAUTION: If you are using a version of GNU Emacs earlier than 19.20 than
|
||||
;;; you may have to edit dired.el. The copy of dired.el in GNU Emacs versions
|
||||
;;; earlier than 19.20 incorrectly had the call to run-hooks *before* the call
|
||||
;;; to provide. In such a case, it is possible that byte-compiling and/or
|
||||
;;; loading dired can cause an infinite loop. To prevent this, make sure the
|
||||
;;; line of code
|
||||
;;;
|
||||
;;; (run-hooks 'dired-load-hook)
|
||||
;;;
|
||||
;;; is the *last* executable line in the file dired.el. That is, make sure it
|
||||
;;; comes *after* the line
|
||||
;;;
|
||||
;;; (provide 'dired)
|
||||
;;;
|
||||
;;; *Please* see the info pages for more details.
|
||||
;; INSTALLATION: In your ~/.emacs,
|
||||
;;
|
||||
;; (add-hook 'dired-load-hook
|
||||
;; (function (lambda ()
|
||||
;; (load "dired-x")
|
||||
;; ;; Set global variables here. For example:
|
||||
;; ;; (setq dired-guess-shell-gnutar "gtar")
|
||||
;; )))
|
||||
;; (add-hook 'dired-mode-hook
|
||||
;; (function (lambda ()
|
||||
;; ;; Set buffer-local variables here. For example:
|
||||
;; ;; (setq dired-omit-files-p t)
|
||||
;; )))
|
||||
;;
|
||||
;; At load time dired-x.el will install itself, redefine some functions, and
|
||||
;; bind some dired keys. *Please* see the info pages for more details.
|
||||
|
||||
;;; User defined variables:
|
||||
;;;
|
||||
;;; dired-bind-vm
|
||||
;;; dired-vm-read-only-folders
|
||||
;;; dired-bind-jump
|
||||
;;; dired-bind-info
|
||||
;;; dired-bind-man
|
||||
;;; dired-x-hands-off-my-keys
|
||||
;;; dired-find-subdir
|
||||
;;; dired-enable-local-variables
|
||||
;;; dired-local-variables-file
|
||||
;;; dired-guess-shell-gnutar
|
||||
;;; dired-guess-shell-gzip-quiet
|
||||
;;; dired-guess-shell-znew-switches
|
||||
;;; dired-guess-shell-alist-user
|
||||
;;; dired-clean-up-buffers-too
|
||||
;;; dired-omit-files-p
|
||||
;;; dired-omit-files
|
||||
;;; dired-omit-extensions
|
||||
;;;
|
||||
;;; To find out more about these variables, load this file, put your cursor at
|
||||
;;; the end of any of the variable names, and hit C-h v [RET]. *Please* see
|
||||
;;; the info pages for more details.
|
||||
;; CAUTION: If you are using a version of GNU Emacs earlier than 19.20 than
|
||||
;; you may have to edit dired.el. The copy of dired.el in GNU Emacs versions
|
||||
;; earlier than 19.20 incorrectly had the call to run-hooks *before* the call
|
||||
;; to provide. In such a case, it is possible that byte-compiling and/or
|
||||
;; loading dired can cause an infinite loop. To prevent this, make sure the
|
||||
;; line of code
|
||||
;;
|
||||
;; (run-hooks 'dired-load-hook)
|
||||
;;
|
||||
;; is the *last* executable line in the file dired.el. That is, make sure it
|
||||
;; comes *after* the line
|
||||
;;
|
||||
;; (provide 'dired)
|
||||
;;
|
||||
;; *Please* see the info pages for more details.
|
||||
|
||||
;;; When loaded this code redefines the following functions of GNU Emacs
|
||||
;;;
|
||||
;;; Function Found in this file of GNU Emacs
|
||||
;;; -------- -------------------------------
|
||||
;;; dired-clean-up-after-deletion ../lisp/dired.el
|
||||
;;; dired-find-buffer-nocreate ../lisp/dired.el
|
||||
;;; dired-initial-position ../lisp/dired.el
|
||||
;;;
|
||||
;;; dired-add-entry ../lisp/dired-aux.el
|
||||
;;; dired-read-shell-command ../lisp/dired-aux.el
|
||||
;;;
|
||||
;;; One drawback is that dired-x.el will load dired-aux.el as soon as dired is
|
||||
;;; loaded. Thus, the advantage of separating out non-essential dired stuff
|
||||
;;; into dired-aux.el and only loading when necessary will be lost. Please
|
||||
;;; note also that some of the comments in dired.el and dired-aux.el are
|
||||
;;; Kremer's that referred to the old dired-x.el. This now should be referring
|
||||
;;; to this program. (This is also a good reason to call this dired-x.el
|
||||
;;; instead of dired-x19.el.)
|
||||
;; User defined variables:
|
||||
;;
|
||||
;; dired-bind-vm
|
||||
;; dired-vm-read-only-folders
|
||||
;; dired-bind-jump
|
||||
;; dired-bind-info
|
||||
;; dired-bind-man
|
||||
;; dired-x-hands-off-my-keys
|
||||
;; dired-find-subdir
|
||||
;; dired-enable-local-variables
|
||||
;; dired-local-variables-file
|
||||
;; dired-guess-shell-gnutar
|
||||
;; dired-guess-shell-gzip-quiet
|
||||
;; dired-guess-shell-znew-switches
|
||||
;; dired-guess-shell-alist-user
|
||||
;; dired-clean-up-buffers-too
|
||||
;; dired-omit-files-p
|
||||
;; dired-omit-files
|
||||
;; dired-omit-extensions
|
||||
;;
|
||||
;; To find out more about these variables, load this file, put your cursor at
|
||||
;; the end of any of the variable names, and hit C-h v [RET]. *Please* see
|
||||
;; the info pages for more details.
|
||||
|
||||
;; When loaded this code redefines the following functions of GNU Emacs
|
||||
;;
|
||||
;; Function Found in this file of GNU Emacs
|
||||
;; -------- -------------------------------
|
||||
;; dired-clean-up-after-deletion ../lisp/dired.el
|
||||
;; dired-find-buffer-nocreate ../lisp/dired.el
|
||||
;; dired-initial-position ../lisp/dired.el
|
||||
;;
|
||||
;; dired-add-entry ../lisp/dired-aux.el
|
||||
;; dired-read-shell-command ../lisp/dired-aux.el
|
||||
;;
|
||||
;; One drawback is that dired-x.el will load dired-aux.el as soon as dired is
|
||||
;; loaded. Thus, the advantage of separating out non-essential dired stuff
|
||||
;; into dired-aux.el and only loading when necessary will be lost. Please
|
||||
;; note also that some of the comments in dired.el and dired-aux.el are
|
||||
;; Kremer's that referred to the old dired-x.el. This now should be referring
|
||||
;; to this program. (This is also a good reason to call this dired-x.el
|
||||
;; instead of dired-x19.el.)
|
||||
|
||||
|
||||
;;;; Code:
|
||||
;;; Code:
|
||||
|
||||
;;; LOAD.
|
||||
;; LOAD.
|
||||
|
||||
;;; This is a no-op if dired-x is being loaded via `dired-load-hook'. It is
|
||||
;;; here in case the user has autoloaded dired-x via the dired-jump key binding
|
||||
;;; (instead of autoloading to dired as is suggested in the info-pages).
|
||||
;; This is a no-op if dired-x is being loaded via `dired-load-hook'. It is
|
||||
;; here in case the user has autoloaded dired-x via the dired-jump key binding
|
||||
;; (instead of autoloading to dired as is suggested in the info-pages).
|
||||
|
||||
(require 'dired)
|
||||
|
||||
;;; We will redefine some functions and also need some macros so we need to
|
||||
;;; load dired stuff of GNU Emacs.
|
||||
;; We will redefine some functions and also need some macros so we need to
|
||||
;; load dired stuff of GNU Emacs.
|
||||
|
||||
(require 'dired-aux)
|
||||
|
||||
;;;; User-defined variables.
|
||||
;;; User-defined variables.
|
||||
|
||||
(defvar dired-bind-vm nil
|
||||
"*t says \"V\" in dired-mode will `dired-vm', otherwise \"V\" is `dired-rmail'.
|
||||
|
@ -202,7 +203,7 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used.")
|
|||
(defvar dired-clean-up-buffers-too t
|
||||
"*t says offer to kill buffers visiting files and dirs deleted in dired.")
|
||||
|
||||
;;;; KEY BINDINGS.
|
||||
;;; KEY BINDINGS.
|
||||
|
||||
(define-key dired-mode-map "\M-o" 'dired-omit-toggle)
|
||||
(define-key dired-mode-map "\M-(" 'dired-mark-sexp)
|
||||
|
@ -229,7 +230,7 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used.")
|
|||
(define-key global-map "\C-x4\C-j" 'dired-jump-other-window)))
|
||||
|
||||
|
||||
;;;; Install into appropriate hooks.
|
||||
;;; Install into appropriate hooks.
|
||||
|
||||
(add-hook 'dired-mode-hook 'dired-extra-startup)
|
||||
(add-hook 'dired-after-readin-hook 'dired-omit-expunge)
|
||||
|
@ -285,9 +286,9 @@ See also functions
|
|||
(dired-omit-startup))
|
||||
|
||||
|
||||
;;;; BUFFER CLEANING.
|
||||
;;; BUFFER CLEANING.
|
||||
|
||||
;;; REDEFINE.
|
||||
;; REDEFINE.
|
||||
(defun dired-clean-up-after-deletion (fn)
|
||||
|
||||
;; Clean up after a deleted file or directory FN.
|
||||
|
@ -319,7 +320,7 @@ See also functions
|
|||
)
|
||||
|
||||
|
||||
;;;; EXTENSION MARKING FUNCTIONS.
|
||||
;;; EXTENSION MARKING FUNCTIONS.
|
||||
|
||||
;;; Mark files with some extension.
|
||||
(defun dired-mark-extension (extension &optional marker-char)
|
||||
|
@ -395,7 +396,7 @@ See variables `dired-texinfo-unclean-extensions',
|
|||
dired-tex-unclean-extensions
|
||||
(list ".dvi"))))
|
||||
|
||||
;;;; JUMP.
|
||||
;;; JUMP.
|
||||
|
||||
;;;###autoload
|
||||
(defun dired-jump (&optional other-window)
|
||||
|
@ -435,7 +436,7 @@ buffer and try again."
|
|||
(interactive)
|
||||
(dired-jump t))
|
||||
|
||||
;;;; TOGGLE.
|
||||
;;; TOGGLE.
|
||||
;;; Toggle marked files with unmarked files.
|
||||
|
||||
(defun dired-do-toggle ()
|
||||
|
@ -462,7 +463,7 @@ As always, hidden subdirs are not affected."
|
|||
(forward-line 1)))))
|
||||
|
||||
|
||||
;;;; COPY NAMES OF MARKED FILES INTO KILL-RING.
|
||||
;;; COPY NAMES OF MARKED FILES INTO KILL-RING.
|
||||
|
||||
(defun dired-copy-filename-as-kill (&optional arg)
|
||||
"Copy names of marked (or next ARG) files into the kill ring.
|
||||
|
@ -491,7 +492,7 @@ You can then feed the file name(s) to other commands with \\[yank]."
|
|||
(message "%s" string)))
|
||||
|
||||
|
||||
;;;; OMITTING.
|
||||
;;; OMITTING.
|
||||
|
||||
;;; Enhanced omitting of lines from directory listings.
|
||||
;;; Marked files are never omitted.
|
||||
|
@ -639,7 +640,7 @@ Second optional argument LOCALP is as in `dired-get-filename'."
|
|||
(fset 'dired-add-entry 'dired-omit-new-add-entry)
|
||||
|
||||
|
||||
;;;; VIRTUAL DIRED MODE.
|
||||
;;; VIRTUAL DIRED MODE.
|
||||
|
||||
;;; For browsing `ls -lR' listings in a dired-like fashion.
|
||||
|
||||
|
@ -764,7 +765,7 @@ Also useful for `auto-mode-alist' (which see) like this:
|
|||
(dired-virtual (dired-virtual-guess-dir)))
|
||||
|
||||
|
||||
;;;; SMART SHELL.
|
||||
;;; SMART SHELL.
|
||||
|
||||
;;; An Emacs buffer can have but one working directory, stored in the
|
||||
;;; buffer-local variable `default-directory'. A Dired buffer may have
|
||||
|
@ -798,7 +799,7 @@ cases in variable `default-directory-alist' (which see)."
|
|||
(shell-command cmd insert)))
|
||||
|
||||
|
||||
;;;; LOCAL VARIABLES FOR DIRED BUFFERS.
|
||||
;;; LOCAL VARIABLES FOR DIRED BUFFERS.
|
||||
|
||||
;;; Brief Description:
|
||||
;;;
|
||||
|
@ -869,7 +870,7 @@ dired."
|
|||
(dired-revert)))
|
||||
|
||||
|
||||
;;;; GUESS SHELL COMMAND.
|
||||
;;; GUESS SHELL COMMAND.
|
||||
|
||||
;;; Brief Description:
|
||||
;;;
|
||||
|
@ -1113,7 +1114,7 @@ You can set this variable in your ~/.emacs. For example, to add rules for
|
|||
files)) ; FILES
|
||||
|
||||
|
||||
;;;; RELATIVE SYMBOLIC LINKS.
|
||||
;;; RELATIVE SYMBOLIC LINKS.
|
||||
|
||||
(defvar dired-keep-marker-relsymlink ?S
|
||||
"See variable `dired-keep-marker-move'.")
|
||||
|
@ -1196,7 +1197,7 @@ for more info."
|
|||
"RelSymLink" nil regexp newname whole-path dired-keep-marker-relsymlink))
|
||||
|
||||
|
||||
;;;; VISIT ALL MARKED FILES SIMULTANEOUSLY.
|
||||
;;; VISIT ALL MARKED FILES SIMULTANEOUSLY.
|
||||
|
||||
;;; Brief Description:
|
||||
;;;
|
||||
|
@ -1278,7 +1279,7 @@ To display just marked files, type \\[delete-other-windows] first."
|
|||
(setq file-list (cdr file-list)))))
|
||||
|
||||
|
||||
;;;; MISCELLANEOUS COMMANDS.
|
||||
;;; MISCELLANEOUS COMMANDS.
|
||||
|
||||
;;; Run man on files.
|
||||
|
||||
|
@ -1334,7 +1335,7 @@ See also variable `dired-vm-read-only-folders'."
|
|||
(dired-rmail)))
|
||||
|
||||
|
||||
;;;; MISCELLANEOUS INTERNAL FUNCTIONS.
|
||||
;;; MISCELLANEOUS INTERNAL FUNCTIONS.
|
||||
|
||||
(or (fboundp 'dired-old-find-buffer-nocreate)
|
||||
(fset 'dired-old-find-buffer-nocreate
|
||||
|
@ -1497,7 +1498,7 @@ to mark all zero length files."
|
|||
(format "'%s file" predicate))))
|
||||
|
||||
|
||||
;;;; FIND FILE AT POINT.
|
||||
;;; FIND FILE AT POINT.
|
||||
|
||||
(defvar dired-x-hands-off-my-keys t
|
||||
"*t means don't bind `dired-x-find-file' over `find-file' on keyboard.
|
||||
|
@ -1609,7 +1610,7 @@ to test if that file exists. Use minibuffer after snatching filename."
|
|||
(read-file-name prompt default-directory)))
|
||||
|
||||
|
||||
;;;; BUG REPORTS
|
||||
;;; BUG REPORTS
|
||||
|
||||
;;; This section is provided for reports. It uses Barry A. Warsaw's
|
||||
;;; reporter.el which is bundled with GNU Emacs v19.
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
;;; docref.el --- Simple cross references for Elisp documentation strings
|
||||
|
||||
;; Copyright (C) 1994 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Vadim Geshel <vadik@unas.cs.kiev.ua>
|
||||
|
@ -19,11 +20,12 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
|
||||
;; This package allows you to use a simple form of cross references in
|
||||
;; your Emacs Lisp documentation strings. Cross-references look like
|
||||
;; \\(type@[label@]data), where type defines a method for retrieving
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; ediff-diff.el --- diff-related utilities
|
||||
;;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michael Kifer <kifer@cs.sunysb.edu>
|
||||
|
||||
|
@ -16,12 +17,14 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ediff-init)
|
||||
|
||||
|
||||
(defvar ediff-shell
|
||||
(cond ((eq system-type 'emx) "cmd") ; OS/2
|
||||
((memq system-type '(vax-vms axp-vms)) "*dcl*") ; VMS
|
||||
|
@ -1161,5 +1164,4 @@ argument to `skip-chars-forward'."
|
|||
|
||||
(provide 'ediff-diff)
|
||||
|
||||
|
||||
;; ediff-diff.el ends here
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; ediff-hook.el --- setup for Ediff's menus and autoloads
|
||||
;;; Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michael Kifer <kifer@cs.sunysb.edu>
|
||||
|
||||
|
@ -16,11 +17,13 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
;;; These must be placed in menu-bar.el in Emacs
|
||||
;; These must be placed in menu-bar.el in Emacs
|
||||
;;
|
||||
;; (define-key menu-bar-tools-menu [eregistry]
|
||||
;; '("List Ediff Sessions" . ediff-show-registry))
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
|
||||
;;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michael Kifer <kifer@cs.sunysb.edu>
|
||||
|
||||
|
@ -16,9 +17,11 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
;; Is it XEmacs?
|
||||
(defconst ediff-xemacs-p (string-match "XEmacs" emacs-version))
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; ediff-merg.el --- merging utilities
|
||||
;;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michael Kifer <kifer@cs.sunysb.edu>
|
||||
|
||||
|
@ -16,9 +17,11 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ediff-init)
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff
|
||||
;;; Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michael Kifer <kifer@cs.sunysb.edu>
|
||||
|
||||
|
@ -16,11 +17,12 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;; Notes:
|
||||
;;
|
||||
;; Users are strongly encourage to add functionality to this file.
|
||||
;; In particular, epatch needs to be enhanced to work with multi-file
|
||||
;; patches. The present file contains all the infrastructure needed for that.
|
||||
|
@ -79,6 +81,8 @@
|
|||
;; that do the layout of the meta- and differences buffers and of
|
||||
;; ediff-dir-action.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ediff-init)
|
||||
|
||||
;; meta-buffer
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; ediff-util.el --- the core commands and utilities of ediff
|
||||
;;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michael Kifer <kifer@cs.sunysb.edu>
|
||||
|
||||
|
@ -16,9 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; ediff-wind.el --- window manipulation utilities
|
||||
;;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michael Kifer <kifer@cs.sunysb.edu>
|
||||
|
||||
|
@ -16,9 +17,11 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ediff-init)
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; ediff.el --- a comprehensive visual interface to diff & patch
|
||||
;;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Michael Kifer <kifer@cs.sunysb.edu>
|
||||
;; Created: February 2, 1994
|
||||
|
@ -21,11 +22,11 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
;; ----------
|
||||
|
||||
;; Never read that diff output again!
|
||||
;; Apply patch selectively, like a pro!
|
||||
|
@ -69,10 +70,7 @@
|
|||
;; particular, it can do patching, and 2-way and 3-way file comparison,
|
||||
;; merging, and directory operations.
|
||||
|
||||
|
||||
|
||||
;;; Bugs:
|
||||
;; -----
|
||||
|
||||
;; 1. The undo command doesn't restore deleted regions well. That is, if
|
||||
;; you delete all characters in a difference region and then invoke
|
||||
|
@ -94,8 +92,6 @@
|
|||
;; commands in `ediff-prepare-buffer-hook' (which will unhighlight every
|
||||
;; buffer used by Ediff) or you can execute them interactively, at any time
|
||||
;; and on any buffer.
|
||||
;;
|
||||
|
||||
|
||||
;;; Acknowledgements:
|
||||
|
||||
|
@ -104,7 +100,6 @@
|
|||
;; its many users. See Ediff on-line Info for the full list of those who
|
||||
;; helped. Improved defaults in Ediff file-name reading commands.
|
||||
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ediff-init)
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;; LCD Archive Entry:
|
||||
;; advice|Hans Chalupsky|hans@cs.buffalo.edu|
|
||||
|
|
|
@ -1,20 +1,26 @@
|
|||
;;; assoc.el --- insert/delete/sort functions on association lists
|
||||
|
||||
;; Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Barry A. Warsaw <bwarsaw@cen.com>
|
||||
;; Keywords: extensions
|
||||
|
||||
;; This software is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY. No author or distributor accepts
|
||||
;; responsibility to anyone for the consequences of using it or for
|
||||
;; whether it serves any particular purpose or works at all, unless he
|
||||
;; says so in writing.
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; This software was written as part of the supercite author's
|
||||
;; official duty as an employee of the United States Government and is
|
||||
;; thus in the public domain. You are free to use that particular
|
||||
;; software as you wish, but WITHOUT ANY WARRANTY WHATSOEVER. It
|
||||
;; would be nice, though if when you use any of this code, you give
|
||||
;; due credit to the author.
|
||||
;; 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.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; 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, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
;;; autoload.el --- maintain autoloads in loaddefs.el.
|
||||
|
||||
;;; Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||||
;;;
|
||||
;; Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Roland McGrath <roland@gnu.ai.mit.edu>
|
||||
;; Keywords: maint
|
||||
|
||||
;;; This program 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.
|
||||
;;;
|
||||
;;; This program is distributed in the hope that it will be useful,
|
||||
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; A copy of the GNU General Public License can be obtained from this
|
||||
;;; program's author (send electronic mail to roland@ai.mit.edu) or from
|
||||
;;; the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
|
||||
;;; 02139, USA.
|
||||
;;;
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; 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.
|
||||
|
||||
;; GNU Emacs is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; 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, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
;;; backquote.el -- implement the ` Lisp construct
|
||||
|
||||
;;; Copyright (C) 1990, 1992, 1994 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Rick Sladkey <jrs@world.std.com>
|
||||
|
@ -18,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,131 +19,132 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;; ========================================================================
|
||||
;;; "No matter how hard you try, you can't make a racehorse out of a pig.
|
||||
;;; You can, however, make a faster pig."
|
||||
;;;
|
||||
;;; Or, to put it another way, the emacs byte compiler is a VW Bug. This code
|
||||
;;; makes it be a VW Bug with fuel injection and a turbocharger... You're
|
||||
;;; still not going to make it go faster than 70 mph, but it might be easier
|
||||
;;; to get it there.
|
||||
;;;
|
||||
;; ========================================================================
|
||||
;; "No matter how hard you try, you can't make a racehorse out of a pig.
|
||||
;; You can, however, make a faster pig."
|
||||
;;
|
||||
;; Or, to put it another way, the emacs byte compiler is a VW Bug. This code
|
||||
;; makes it be a VW Bug with fuel injection and a turbocharger... You're
|
||||
;; still not going to make it go faster than 70 mph, but it might be easier
|
||||
;; to get it there.
|
||||
;;
|
||||
|
||||
;;; TO DO:
|
||||
;;;
|
||||
;;; (apply '(lambda (x &rest y) ...) 1 (foo))
|
||||
;;;
|
||||
;;; maintain a list of functions known not to access any global variables
|
||||
;;; (actually, give them a 'dynamically-safe property) and then
|
||||
;;; (let ( v1 v2 ... vM vN ) <...dynamically-safe...> ) ==>
|
||||
;;; (let ( v1 v2 ... vM ) vN <...dynamically-safe...> )
|
||||
;;; by recursing on this, we might be able to eliminate the entire let.
|
||||
;;; However certain variables should never have their bindings optimized
|
||||
;;; away, because they affect everything.
|
||||
;;; (put 'debug-on-error 'binding-is-magic t)
|
||||
;;; (put 'debug-on-abort 'binding-is-magic t)
|
||||
;;; (put 'debug-on-next-call 'binding-is-magic t)
|
||||
;;; (put 'mocklisp-arguments 'binding-is-magic t)
|
||||
;;; (put 'inhibit-quit 'binding-is-magic t)
|
||||
;;; (put 'quit-flag 'binding-is-magic t)
|
||||
;;; (put 't 'binding-is-magic t)
|
||||
;;; (put 'nil 'binding-is-magic t)
|
||||
;;; possibly also
|
||||
;;; (put 'gc-cons-threshold 'binding-is-magic t)
|
||||
;;; (put 'track-mouse 'binding-is-magic t)
|
||||
;;; others?
|
||||
;;;
|
||||
;;; Simple defsubsts often produce forms like
|
||||
;;; (let ((v1 (f1)) (v2 (f2)) ...)
|
||||
;;; (FN v1 v2 ...))
|
||||
;;; It would be nice if we could optimize this to
|
||||
;;; (FN (f1) (f2) ...)
|
||||
;;; but we can't unless FN is dynamically-safe (it might be dynamically
|
||||
;;; referring to the bindings that the lambda arglist established.)
|
||||
;;; One of the uncountable lossages introduced by dynamic scope...
|
||||
;;;
|
||||
;;; Maybe there should be a control-structure that says "turn on
|
||||
;;; fast-and-loose type-assumptive optimizations here." Then when
|
||||
;;; we see a form like (car foo) we can from then on assume that
|
||||
;;; the variable foo is of type cons, and optimize based on that.
|
||||
;;; But, this won't win much because of (you guessed it) dynamic
|
||||
;;; scope. Anything down the stack could change the value.
|
||||
;;; (Another reason it doesn't work is that it is perfectly valid
|
||||
;;; to call car with a null argument.) A better approach might
|
||||
;;; be to allow type-specification of the form
|
||||
;;; (put 'foo 'arg-types '(float (list integer) dynamic))
|
||||
;;; (put 'foo 'result-type 'bool)
|
||||
;;; It should be possible to have these types checked to a certain
|
||||
;;; degree.
|
||||
;;;
|
||||
;;; collapse common subexpressions
|
||||
;;;
|
||||
;;; It would be nice if redundant sequences could be factored out as well,
|
||||
;;; when they are known to have no side-effects:
|
||||
;;; (list (+ a b c) (+ a b c)) --> a b add c add dup list-2
|
||||
;;; but beware of traps like
|
||||
;;; (cons (list x y) (list x y))
|
||||
;;;
|
||||
;;; Tail-recursion elimination is not really possible in Emacs Lisp.
|
||||
;;; Tail-recursion elimination is almost always impossible when all variables
|
||||
;;; have dynamic scope, but given that the "return" byteop requires the
|
||||
;;; binding stack to be empty (rather than emptying it itself), there can be
|
||||
;;; no truly tail-recursive Emacs Lisp functions that take any arguments or
|
||||
;;; make any bindings.
|
||||
;;;
|
||||
;;; Here is an example of an Emacs Lisp function which could safely be
|
||||
;;; byte-compiled tail-recursively:
|
||||
;;;
|
||||
;;; (defun tail-map (fn list)
|
||||
;;; (cond (list
|
||||
;;; (funcall fn (car list))
|
||||
;;; (tail-map fn (cdr list)))))
|
||||
;;;
|
||||
;;; However, if there was even a single let-binding around the COND,
|
||||
;;; it could not be byte-compiled, because there would be an "unbind"
|
||||
;;; byte-op between the final "call" and "return." Adding a
|
||||
;;; Bunbind_all byteop would fix this.
|
||||
;;;
|
||||
;;; (defun foo (x y z) ... (foo a b c))
|
||||
;;; ... (const foo) (varref a) (varref b) (varref c) (call 3) END: (return)
|
||||
;;; ... (varref a) (varbind x) (varref b) (varbind y) (varref c) (varbind z) (goto 0) END: (unbind-all) (return)
|
||||
;;; ... (varref a) (varset x) (varref b) (varset y) (varref c) (varset z) (goto 0) END: (return)
|
||||
;;;
|
||||
;;; this also can be considered tail recursion:
|
||||
;;;
|
||||
;;; ... (const foo) (varref a) (call 1) (goto X) ... X: (return)
|
||||
;;; could generalize this by doing the optimization
|
||||
;;; (goto X) ... X: (return) --> (return)
|
||||
;;;
|
||||
;;; But this doesn't solve all of the problems: although by doing tail-
|
||||
;;; recursion elimination in this way, the call-stack does not grow, the
|
||||
;;; binding-stack would grow with each recursive step, and would eventually
|
||||
;;; overflow. I don't believe there is any way around this without lexical
|
||||
;;; scope.
|
||||
;;;
|
||||
;;; Wouldn't it be nice if Emacs Lisp had lexical scope.
|
||||
;;;
|
||||
;;; Idea: the form (lexical-scope) in a file means that the file may be
|
||||
;;; compiled lexically. This proclamation is file-local. Then, within
|
||||
;;; that file, "let" would establish lexical bindings, and "let-dynamic"
|
||||
;;; would do things the old way. (Or we could use CL "declare" forms.)
|
||||
;;; We'd have to notice defvars and defconsts, since those variables should
|
||||
;;; always be dynamic, and attempting to do a lexical binding of them
|
||||
;;; should simply do a dynamic binding instead.
|
||||
;;; But! We need to know about variables that were not necessarily defvarred
|
||||
;;; in the file being compiled (doing a boundp check isn't good enough.)
|
||||
;;; Fdefvar() would have to be modified to add something to the plist.
|
||||
;;;
|
||||
;;; A major disadvantage of this scheme is that the interpreter and compiler
|
||||
;;; would have different semantics for files compiled with (dynamic-scope).
|
||||
;;; Since this would be a file-local optimization, there would be no way to
|
||||
;;; modify the interpreter to obey this (unless the loader was hacked
|
||||
;;; in some grody way, but that's a really bad idea.)
|
||||
;; TO DO:
|
||||
;;
|
||||
;; (apply '(lambda (x &rest y) ...) 1 (foo))
|
||||
;;
|
||||
;; maintain a list of functions known not to access any global variables
|
||||
;; (actually, give them a 'dynamically-safe property) and then
|
||||
;; (let ( v1 v2 ... vM vN ) <...dynamically-safe...> ) ==>
|
||||
;; (let ( v1 v2 ... vM ) vN <...dynamically-safe...> )
|
||||
;; by recursing on this, we might be able to eliminate the entire let.
|
||||
;; However certain variables should never have their bindings optimized
|
||||
;; away, because they affect everything.
|
||||
;; (put 'debug-on-error 'binding-is-magic t)
|
||||
;; (put 'debug-on-abort 'binding-is-magic t)
|
||||
;; (put 'debug-on-next-call 'binding-is-magic t)
|
||||
;; (put 'mocklisp-arguments 'binding-is-magic t)
|
||||
;; (put 'inhibit-quit 'binding-is-magic t)
|
||||
;; (put 'quit-flag 'binding-is-magic t)
|
||||
;; (put 't 'binding-is-magic t)
|
||||
;; (put 'nil 'binding-is-magic t)
|
||||
;; possibly also
|
||||
;; (put 'gc-cons-threshold 'binding-is-magic t)
|
||||
;; (put 'track-mouse 'binding-is-magic t)
|
||||
;; others?
|
||||
;;
|
||||
;; Simple defsubsts often produce forms like
|
||||
;; (let ((v1 (f1)) (v2 (f2)) ...)
|
||||
;; (FN v1 v2 ...))
|
||||
;; It would be nice if we could optimize this to
|
||||
;; (FN (f1) (f2) ...)
|
||||
;; but we can't unless FN is dynamically-safe (it might be dynamically
|
||||
;; referring to the bindings that the lambda arglist established.)
|
||||
;; One of the uncountable lossages introduced by dynamic scope...
|
||||
;;
|
||||
;; Maybe there should be a control-structure that says "turn on
|
||||
;; fast-and-loose type-assumptive optimizations here." Then when
|
||||
;; we see a form like (car foo) we can from then on assume that
|
||||
;; the variable foo is of type cons, and optimize based on that.
|
||||
;; But, this won't win much because of (you guessed it) dynamic
|
||||
;; scope. Anything down the stack could change the value.
|
||||
;; (Another reason it doesn't work is that it is perfectly valid
|
||||
;; to call car with a null argument.) A better approach might
|
||||
;; be to allow type-specification of the form
|
||||
;; (put 'foo 'arg-types '(float (list integer) dynamic))
|
||||
;; (put 'foo 'result-type 'bool)
|
||||
;; It should be possible to have these types checked to a certain
|
||||
;; degree.
|
||||
;;
|
||||
;; collapse common subexpressions
|
||||
;;
|
||||
;; It would be nice if redundant sequences could be factored out as well,
|
||||
;; when they are known to have no side-effects:
|
||||
;; (list (+ a b c) (+ a b c)) --> a b add c add dup list-2
|
||||
;; but beware of traps like
|
||||
;; (cons (list x y) (list x y))
|
||||
;;
|
||||
;; Tail-recursion elimination is not really possible in Emacs Lisp.
|
||||
;; Tail-recursion elimination is almost always impossible when all variables
|
||||
;; have dynamic scope, but given that the "return" byteop requires the
|
||||
;; binding stack to be empty (rather than emptying it itself), there can be
|
||||
;; no truly tail-recursive Emacs Lisp functions that take any arguments or
|
||||
;; make any bindings.
|
||||
;;
|
||||
;; Here is an example of an Emacs Lisp function which could safely be
|
||||
;; byte-compiled tail-recursively:
|
||||
;;
|
||||
;; (defun tail-map (fn list)
|
||||
;; (cond (list
|
||||
;; (funcall fn (car list))
|
||||
;; (tail-map fn (cdr list)))))
|
||||
;;
|
||||
;; However, if there was even a single let-binding around the COND,
|
||||
;; it could not be byte-compiled, because there would be an "unbind"
|
||||
;; byte-op between the final "call" and "return." Adding a
|
||||
;; Bunbind_all byteop would fix this.
|
||||
;;
|
||||
;; (defun foo (x y z) ... (foo a b c))
|
||||
;; ... (const foo) (varref a) (varref b) (varref c) (call 3) END: (return)
|
||||
;; ... (varref a) (varbind x) (varref b) (varbind y) (varref c) (varbind z) (goto 0) END: (unbind-all) (return)
|
||||
;; ... (varref a) (varset x) (varref b) (varset y) (varref c) (varset z) (goto 0) END: (return)
|
||||
;;
|
||||
;; this also can be considered tail recursion:
|
||||
;;
|
||||
;; ... (const foo) (varref a) (call 1) (goto X) ... X: (return)
|
||||
;; could generalize this by doing the optimization
|
||||
;; (goto X) ... X: (return) --> (return)
|
||||
;;
|
||||
;; But this doesn't solve all of the problems: although by doing tail-
|
||||
;; recursion elimination in this way, the call-stack does not grow, the
|
||||
;; binding-stack would grow with each recursive step, and would eventually
|
||||
;; overflow. I don't believe there is any way around this without lexical
|
||||
;; scope.
|
||||
;;
|
||||
;; Wouldn't it be nice if Emacs Lisp had lexical scope.
|
||||
;;
|
||||
;; Idea: the form (lexical-scope) in a file means that the file may be
|
||||
;; compiled lexically. This proclamation is file-local. Then, within
|
||||
;; that file, "let" would establish lexical bindings, and "let-dynamic"
|
||||
;; would do things the old way. (Or we could use CL "declare" forms.)
|
||||
;; We'd have to notice defvars and defconsts, since those variables should
|
||||
;; always be dynamic, and attempting to do a lexical binding of them
|
||||
;; should simply do a dynamic binding instead.
|
||||
;; But! We need to know about variables that were not necessarily defvarred
|
||||
;; in the file being compiled (doing a boundp check isn't good enough.)
|
||||
;; Fdefvar() would have to be modified to add something to the plist.
|
||||
;;
|
||||
;; A major disadvantage of this scheme is that the interpreter and compiler
|
||||
;; would have different semantics for files compiled with (dynamic-scope).
|
||||
;; Since this would be a file-local optimization, there would be no way to
|
||||
;; modify the interpreter to obey this (unless the loader was hacked
|
||||
;; in some grody way, but that's a really bad idea.)
|
||||
|
||||
;; Other things to consider:
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; bytecomp.el --- compilation of Lisp code into byte code.
|
||||
|
||||
;;; Copyright (C) 1985, 1986, 1987, 1992, 1994 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1985, 1986, 1987, 1992, 1994 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Jamie Zawinski <jwz@lucid.com>
|
||||
;; Hallvard Furuseth <hbf@ulrik.uio.no>
|
||||
|
@ -25,8 +25,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
@ -36,120 +37,120 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;;; ========================================================================
|
||||
;;; Entry points:
|
||||
;;; byte-recompile-directory, byte-compile-file,
|
||||
;;; batch-byte-compile, batch-byte-recompile-directory,
|
||||
;;; byte-compile, compile-defun,
|
||||
;;; display-call-tree
|
||||
;;; (byte-compile-buffer and byte-compile-and-load-file were turned off
|
||||
;;; because they are not terribly useful and get in the way of completion.)
|
||||
;; ========================================================================
|
||||
;; Entry points:
|
||||
;; byte-recompile-directory, byte-compile-file,
|
||||
;; batch-byte-compile, batch-byte-recompile-directory,
|
||||
;; byte-compile, compile-defun,
|
||||
;; display-call-tree
|
||||
;; (byte-compile-buffer and byte-compile-and-load-file were turned off
|
||||
;; because they are not terribly useful and get in the way of completion.)
|
||||
|
||||
;;; This version of the byte compiler has the following improvements:
|
||||
;;; + optimization of compiled code:
|
||||
;;; - removal of unreachable code;
|
||||
;;; - removal of calls to side-effectless functions whose return-value
|
||||
;;; is unused;
|
||||
;;; - compile-time evaluation of safe constant forms, such as (consp nil)
|
||||
;;; and (ash 1 6);
|
||||
;;; - open-coding of literal lambdas;
|
||||
;;; - peephole optimization of emitted code;
|
||||
;;; - trivial functions are left uncompiled for speed.
|
||||
;;; + support for inline functions;
|
||||
;;; + compile-time evaluation of arbitrary expressions;
|
||||
;;; + compile-time warning messages for:
|
||||
;;; - functions being redefined with incompatible arglists;
|
||||
;;; - functions being redefined as macros, or vice-versa;
|
||||
;;; - functions or macros defined multiple times in the same file;
|
||||
;;; - functions being called with the incorrect number of arguments;
|
||||
;;; - functions being called which are not defined globally, in the
|
||||
;;; file, or as autoloads;
|
||||
;;; - assignment and reference of undeclared free variables;
|
||||
;;; - various syntax errors;
|
||||
;;; + correct compilation of nested defuns, defmacros, defvars and defsubsts;
|
||||
;;; + correct compilation of top-level uses of macros;
|
||||
;;; + the ability to generate a histogram of functions called.
|
||||
;; This version of the byte compiler has the following improvements:
|
||||
;; + optimization of compiled code:
|
||||
;; - removal of unreachable code;
|
||||
;; - removal of calls to side-effectless functions whose return-value
|
||||
;; is unused;
|
||||
;; - compile-time evaluation of safe constant forms, such as (consp nil)
|
||||
;; and (ash 1 6);
|
||||
;; - open-coding of literal lambdas;
|
||||
;; - peephole optimization of emitted code;
|
||||
;; - trivial functions are left uncompiled for speed.
|
||||
;; + support for inline functions;
|
||||
;; + compile-time evaluation of arbitrary expressions;
|
||||
;; + compile-time warning messages for:
|
||||
;; - functions being redefined with incompatible arglists;
|
||||
;; - functions being redefined as macros, or vice-versa;
|
||||
;; - functions or macros defined multiple times in the same file;
|
||||
;; - functions being called with the incorrect number of arguments;
|
||||
;; - functions being called which are not defined globally, in the
|
||||
;; file, or as autoloads;
|
||||
;; - assignment and reference of undeclared free variables;
|
||||
;; - various syntax errors;
|
||||
;; + correct compilation of nested defuns, defmacros, defvars and defsubsts;
|
||||
;; + correct compilation of top-level uses of macros;
|
||||
;; + the ability to generate a histogram of functions called.
|
||||
|
||||
;;; User customization variables:
|
||||
;;;
|
||||
;;; byte-compile-verbose Whether to report the function currently being
|
||||
;;; compiled in the minibuffer;
|
||||
;;; byte-optimize Whether to do optimizations; this may be
|
||||
;;; t, nil, 'source, or 'byte;
|
||||
;;; byte-optimize-log Whether to report (in excruciating detail)
|
||||
;;; exactly which optimizations have been made.
|
||||
;;; This may be t, nil, 'source, or 'byte;
|
||||
;;; byte-compile-error-on-warn Whether to stop compilation when a warning is
|
||||
;;; produced;
|
||||
;;; byte-compile-delete-errors Whether the optimizer may delete calls or
|
||||
;;; variable references that are side-effect-free
|
||||
;;; except that they may return an error.
|
||||
;;; byte-compile-generate-call-tree Whether to generate a histogram of
|
||||
;;; function calls. This can be useful for
|
||||
;;; finding unused functions, as well as simple
|
||||
;;; performance metering.
|
||||
;;; byte-compile-warnings List of warnings to issue, or t. May contain
|
||||
;;; 'free-vars (references to variables not in the
|
||||
;;; current lexical scope)
|
||||
;;; 'unresolved (calls to unknown functions)
|
||||
;;; 'callargs (lambda calls with args that don't
|
||||
;;; match the lambda's definition)
|
||||
;;; 'redefine (function cell redefined from
|
||||
;;; a macro to a lambda or vice versa,
|
||||
;;; or redefined to take other args)
|
||||
;;; 'obsolete (obsolete variables and functions)
|
||||
;;; byte-compile-compatibility Whether the compiler should
|
||||
;;; generate .elc files which can be loaded into
|
||||
;;; generic emacs 18.
|
||||
;;; emacs-lisp-file-regexp Regexp for the extension of source-files;
|
||||
;;; see also the function byte-compile-dest-file.
|
||||
;; User customization variables:
|
||||
;;
|
||||
;; byte-compile-verbose Whether to report the function currently being
|
||||
;; compiled in the minibuffer;
|
||||
;; byte-optimize Whether to do optimizations; this may be
|
||||
;; t, nil, 'source, or 'byte;
|
||||
;; byte-optimize-log Whether to report (in excruciating detail)
|
||||
;; exactly which optimizations have been made.
|
||||
;; This may be t, nil, 'source, or 'byte;
|
||||
;; byte-compile-error-on-warn Whether to stop compilation when a warning is
|
||||
;; produced;
|
||||
;; byte-compile-delete-errors Whether the optimizer may delete calls or
|
||||
;; variable references that are side-effect-free
|
||||
;; except that they may return an error.
|
||||
;; byte-compile-generate-call-tree Whether to generate a histogram of
|
||||
;; function calls. This can be useful for
|
||||
;; finding unused functions, as well as simple
|
||||
;; performance metering.
|
||||
;; byte-compile-warnings List of warnings to issue, or t. May contain
|
||||
;; 'free-vars (references to variables not in the
|
||||
;; current lexical scope)
|
||||
;; 'unresolved (calls to unknown functions)
|
||||
;; 'callargs (lambda calls with args that don't
|
||||
;; match the lambda's definition)
|
||||
;; 'redefine (function cell redefined from
|
||||
;; a macro to a lambda or vice versa,
|
||||
;; or redefined to take other args)
|
||||
;; 'obsolete (obsolete variables and functions)
|
||||
;; byte-compile-compatibility Whether the compiler should
|
||||
;; generate .elc files which can be loaded into
|
||||
;; generic emacs 18.
|
||||
;; emacs-lisp-file-regexp Regexp for the extension of source-files;
|
||||
;; see also the function byte-compile-dest-file.
|
||||
|
||||
;;; New Features:
|
||||
;;;
|
||||
;;; o The form `defsubst' is just like `defun', except that the function
|
||||
;;; generated will be open-coded in compiled code which uses it. This
|
||||
;;; means that no function call will be generated, it will simply be
|
||||
;;; spliced in. Lisp functions calls are very slow, so this can be a
|
||||
;;; big win.
|
||||
;;;
|
||||
;;; You can generally accomplish the same thing with `defmacro', but in
|
||||
;;; that case, the defined procedure can't be used as an argument to
|
||||
;;; mapcar, etc.
|
||||
;;;
|
||||
;;; o You can also open-code one particular call to a function without
|
||||
;;; open-coding all calls. Use the 'inline' form to do this, like so:
|
||||
;;;
|
||||
;;; (inline (foo 1 2 3)) ;; `foo' will be open-coded
|
||||
;;; or...
|
||||
;;; (inline ;; `foo' and `baz' will be
|
||||
;;; (foo 1 2 3 (bar 5)) ;; open-coded, but `bar' will not.
|
||||
;;; (baz 0))
|
||||
;;;
|
||||
;;; o It is possible to open-code a function in the same file it is defined
|
||||
;;; in without having to load that file before compiling it. the
|
||||
;;; byte-compiler has been modified to remember function definitions in
|
||||
;;; the compilation environment in the same way that it remembers macro
|
||||
;;; definitions.
|
||||
;;;
|
||||
;;; o Forms like ((lambda ...) ...) are open-coded.
|
||||
;;;
|
||||
;;; o The form `eval-when-compile' is like progn, except that the body
|
||||
;;; is evaluated at compile-time. When it appears at top-level, this
|
||||
;;; is analogous to the Common Lisp idiom (eval-when (compile) ...).
|
||||
;;; When it does not appear at top-level, it is similar to the
|
||||
;;; Common Lisp #. reader macro (but not in interpreted code).
|
||||
;;;
|
||||
;;; o The form `eval-and-compile' is similar to eval-when-compile, but
|
||||
;;; the whole form is evalled both at compile-time and at run-time.
|
||||
;;;
|
||||
;;; o The command compile-defun is analogous to eval-defun.
|
||||
;;;
|
||||
;;; o If you run byte-compile-file on a filename which is visited in a
|
||||
;;; buffer, and that buffer is modified, you are asked whether you want
|
||||
;;; to save the buffer before compiling.
|
||||
;;;
|
||||
;;; o byte-compiled files now start with the string `;ELC'.
|
||||
;;; Some versions of `file' can be customized to recognize that.
|
||||
;; New Features:
|
||||
;;
|
||||
;; o The form `defsubst' is just like `defun', except that the function
|
||||
;; generated will be open-coded in compiled code which uses it. This
|
||||
;; means that no function call will be generated, it will simply be
|
||||
;; spliced in. Lisp functions calls are very slow, so this can be a
|
||||
;; big win.
|
||||
;;
|
||||
;; You can generally accomplish the same thing with `defmacro', but in
|
||||
;; that case, the defined procedure can't be used as an argument to
|
||||
;; mapcar, etc.
|
||||
;;
|
||||
;; o You can also open-code one particular call to a function without
|
||||
;; open-coding all calls. Use the 'inline' form to do this, like so:
|
||||
;;
|
||||
;; (inline (foo 1 2 3)) ;; `foo' will be open-coded
|
||||
;; or...
|
||||
;; (inline ;; `foo' and `baz' will be
|
||||
;; (foo 1 2 3 (bar 5)) ;; open-coded, but `bar' will not.
|
||||
;; (baz 0))
|
||||
;;
|
||||
;; o It is possible to open-code a function in the same file it is defined
|
||||
;; in without having to load that file before compiling it. the
|
||||
;; byte-compiler has been modified to remember function definitions in
|
||||
;; the compilation environment in the same way that it remembers macro
|
||||
;; definitions.
|
||||
;;
|
||||
;; o Forms like ((lambda ...) ...) are open-coded.
|
||||
;;
|
||||
;; o The form `eval-when-compile' is like progn, except that the body
|
||||
;; is evaluated at compile-time. When it appears at top-level, this
|
||||
;; is analogous to the Common Lisp idiom (eval-when (compile) ...).
|
||||
;; When it does not appear at top-level, it is similar to the
|
||||
;; Common Lisp #. reader macro (but not in interpreted code).
|
||||
;;
|
||||
;; o The form `eval-and-compile' is similar to eval-when-compile, but
|
||||
;; the whole form is evalled both at compile-time and at run-time.
|
||||
;;
|
||||
;; o The command compile-defun is analogous to eval-defun.
|
||||
;;
|
||||
;; o If you run byte-compile-file on a filename which is visited in a
|
||||
;; buffer, and that buffer is modified, you are asked whether you want
|
||||
;; to save the buffer before compiling.
|
||||
;;
|
||||
;; o byte-compiled files now start with the string `;ELC'.
|
||||
;; Some versions of `file' can be customized to recognize that.
|
||||
|
||||
(require 'backquote)
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
;; LCD Archive Entry:
|
||||
;; cl-specs.el|Daniel LaLiberte|liberte@cs.uiuc.edu
|
||||
;; |Edebug specs for cl.el
|
||||
;; |$Date: 1995/10/30 16:51:55 $|1.1|
|
||||
;; |$Date: 1996/01/05 21:56:25 $|1.1|
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
@ -22,8 +22,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; disass.el --- disassembler for compiled Emacs Lisp code
|
||||
|
||||
;;; Copyright (C) 1986, 1991 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1986, 1991 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Doug Cutting <doug@csli.stanford.edu>
|
||||
;; Jamie Zawinski <jwz@lucid.com>
|
||||
|
@ -20,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,12 +18,15 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; This is compatible with easymenu.el by Per Abrahamsen
|
||||
;;; but it is much simpler as it doesn't try to support other Emacs versions.
|
||||
;;; The code was mostly derived from lmenu.el.
|
||||
;;; Commentary:
|
||||
|
||||
;; This is compatible with easymenu.el by Per Abrahamsen
|
||||
;; but it is much simpler as it doesn't try to support other Emacs versions.
|
||||
;; The code was mostly derived from lmenu.el.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -22,8 +22,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; eval-reg.el --- Redefine eval-region, and subrs that use it, in Lisp
|
||||
|
||||
;; Copyright (C) 1994 Daniel LaLiberte
|
||||
;; Copyright (C) 1994, 1996 Daniel LaLiberte
|
||||
|
||||
;; Author: Daniel LaLiberte <liberte@cs.uiuc.edu>
|
||||
;; Keywords: lisp
|
||||
|
@ -21,26 +21,28 @@
|
|||
;; along with GNU Emacs; see the file COPYING. If not, write to
|
||||
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
;;;; Commentary:
|
||||
;;; Commentary:
|
||||
|
||||
;;; eval-region, eval-buffer, and eval-current-buffer are redefined in
|
||||
;;; Lisp to allow customizations by Lisp code. eval-region calls
|
||||
;;; `read', `eval', and `prin1', so Lisp replacements of these
|
||||
;;; functions will affect eval-region and anything else that calls it.
|
||||
;;; eval-buffer and eval-current-buffer are redefined in Lisp to call
|
||||
;;; eval-region on the buffer.
|
||||
;; eval-region, eval-buffer, and eval-current-buffer are redefined in
|
||||
;; Lisp to allow customizations by Lisp code. eval-region calls
|
||||
;; `read', `eval', and `prin1', so Lisp replacements of these
|
||||
;; functions will affect eval-region and anything else that calls it.
|
||||
;; eval-buffer and eval-current-buffer are redefined in Lisp to call
|
||||
;; eval-region on the buffer.
|
||||
|
||||
;;; Because of dynamic binding, all local variables are protected from
|
||||
;;; being seen by eval by giving them funky names. But variables in
|
||||
;;; routines that call eval-region are similarly exposed.
|
||||
;; Because of dynamic binding, all local variables are protected from
|
||||
;; being seen by eval by giving them funky names. But variables in
|
||||
;; routines that call eval-region are similarly exposed.
|
||||
|
||||
;;; Perhaps this should be one of several files in an `elisp' package
|
||||
;;; that replaces Emacs Lisp subroutines with Lisp versions of the
|
||||
;;; same.
|
||||
;; Perhaps this should be one of several files in an `elisp' package
|
||||
;; that replaces Emacs Lisp subroutines with Lisp versions of the
|
||||
;; same.
|
||||
|
||||
;;; Eval-region may be installed, after loading, by calling:
|
||||
;;; (elisp-eval-region-install). Installation can be undone with:
|
||||
;;; (elisp-eval-region-uninstall).
|
||||
;; Eval-region may be installed, after loading, by calling:
|
||||
;; (elisp-eval-region-install). Installation can be undone with:
|
||||
;; (elisp-eval-region-uninstall).
|
||||
|
||||
;;; Code:
|
||||
|
||||
'(defpackage "elisp-eval-region"
|
||||
(:nicknames "elisp")
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -19,12 +19,13 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
; hey, here's a helping hand.
|
||||
;; hey, here's a helping hand.
|
||||
|
||||
;; Bind this to a string for <blank> in "... Other keys <blank>".
|
||||
;; Helper-help uses this to construct help string when scrolling.
|
||||
|
|
|
@ -15,8 +15,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
|
||||
;; Maintainer: Eric S. Raymond <esr@snark.thyrsus.com>
|
||||
;; Created: 14 Jul 1992
|
||||
;; Version: $Id: lisp-mnt.el,v 1.10 1995/03/16 04:37:48 rms Exp kwzh $
|
||||
;; Version: $Id: lisp-mnt.el,v 1.11 1995/06/15 20:42:24 kwzh Exp erik $
|
||||
;; Keywords: docs
|
||||
;; X-Bogus-Bureaucratic-Cruft: Gruad will get you if you don't watch out!
|
||||
|
||||
|
@ -22,8 +22,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
;;; lmenu.el --- emulate Lucid's menubar support
|
||||
|
||||
;; Keywords: emulations
|
||||
|
||||
;; Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
|
||||
|
||||
;; Keywords: emulations
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software; you can redistribute it and/or modify
|
||||
|
@ -17,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
;;; lselect.el --- Lucid interface to X Selections
|
||||
|
||||
;; Copyright (C) 1990, 1993 Free Software Foundation, Inc.
|
||||
|
||||
;; Keywords: emulations
|
||||
|
||||
;; This won't completely work until we support or emulate Lucid-style extents.
|
||||
;; Copyright (C) 1990, 1993 Free Software Foundation, Inc.
|
||||
;; Based on Lucid's selection code.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
@ -19,8 +20,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
;;; lucid.el --- Emulate some Lucid Emacs functions.
|
||||
|
||||
;; Copyright (C) 1993, 1995 Free Software Foundation, Inc.
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
@ -14,9 +15,11 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(defun add-timeout (secs function object &optional resignal)
|
||||
(run-at-time secs resignal function object))
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
;;; pp.el --- pretty printer for Emacs Lisp
|
||||
|
||||
;; Copyright (C) 1989, 1993 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Randal Schwartz <merlyn@ora.com>
|
||||
|
@ -16,8 +17,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -21,49 +21,50 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
; DESCRIPTION:
|
||||
; ------------
|
||||
; This program can be used to monitor running time performance of Emacs Lisp
|
||||
; functions. It takes a list of functions and report the real time spent
|
||||
; inside these functions. It runs a process with a separate timer program.
|
||||
; Caveat: the C code in ../lib-src/profile.c requires BSD-compatible
|
||||
; time-of-day functions. If you're running an AT&T version prior to SVr4,
|
||||
; you may have difficulty getting it to work. Your X library may supply
|
||||
; the required routines if the standard C library does not.
|
||||
;; DESCRIPTION:
|
||||
;; ------------
|
||||
;; This program can be used to monitor running time performance of Emacs Lisp
|
||||
;; functions. It takes a list of functions and report the real time spent
|
||||
;; inside these functions. It runs a process with a separate timer program.
|
||||
;; Caveat: the C code in ../lib-src/profile.c requires BSD-compatible
|
||||
;; time-of-day functions. If you're running an AT&T version prior to SVr4,
|
||||
;; you may have difficulty getting it to work. Your X library may supply
|
||||
;; the required routines if the standard C library does not.
|
||||
|
||||
; HOW TO USE:
|
||||
; -----------
|
||||
; Set the variable profile-functions-list to the list of functions
|
||||
; (as symbols) You want to profile. Call M-x profile-functions to set
|
||||
; this list on and start using your program. Note that profile-functions
|
||||
; MUST be called AFTER all the functions in profile-functions-list have
|
||||
; been loaded !! (This call modifies the code of the profiled functions.
|
||||
; Hence if you reload these functions, you need to call profile-functions
|
||||
; again! ).
|
||||
; To display the results do M-x profile-results . For example:
|
||||
;-------------------------------------------------------------------
|
||||
; (setq profile-functions-list '(sokoban-set-mode-line sokoban-load-game
|
||||
; sokoban-move-vertical sokoban-move))
|
||||
; (load "sokoban")
|
||||
; M-x profile-functions
|
||||
; ... I play the sokoban game ..........
|
||||
; M-x profile-results
|
||||
;
|
||||
; Function Time (Seconds.Useconds)
|
||||
; ======== =======================
|
||||
; sokoban-move 0.539088
|
||||
; sokoban-move-vertical 0.410130
|
||||
; sokoban-load-game 0.453235
|
||||
; sokoban-set-mode-line 1.949203
|
||||
;-----------------------------------------------------
|
||||
; To clear all the settings to profile use profile-finish.
|
||||
; To set one function at a time (instead of or in addition to setting the
|
||||
; above list and M-x profile-functions) use M-x profile-a-function.
|
||||
;; HOW TO USE:
|
||||
;; -----------
|
||||
;; Set the variable profile-functions-list to the list of functions
|
||||
;; (as symbols) You want to profile. Call M-x profile-functions to set
|
||||
;; this list on and start using your program. Note that profile-functions
|
||||
;; MUST be called AFTER all the functions in profile-functions-list have
|
||||
;; been loaded !! (This call modifies the code of the profiled functions.
|
||||
;; Hence if you reload these functions, you need to call profile-functions
|
||||
;; again! ).
|
||||
;; To display the results do M-x profile-results . For example:
|
||||
;;-------------------------------------------------------------------
|
||||
;; (setq profile-functions-list '(sokoban-set-mode-line sokoban-load-game
|
||||
;; sokoban-move-vertical sokoban-move))
|
||||
;; (load "sokoban")
|
||||
;; M-x profile-functions
|
||||
;; ... I play the sokoban game ..........
|
||||
;; M-x profile-results
|
||||
;;
|
||||
;; Function Time (Seconds.Useconds)
|
||||
;; ======== =======================
|
||||
;; sokoban-move 0.539088
|
||||
;; sokoban-move-vertical 0.410130
|
||||
;; sokoban-load-game 0.453235
|
||||
;; sokoban-set-mode-line 1.949203
|
||||
;;-----------------------------------------------------
|
||||
;; To clear all the settings to profile use profile-finish.
|
||||
;; To set one function at a time (instead of or in addition to setting the
|
||||
;; above list and M-x profile-functions) use M-x profile-a-function.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -18,24 +18,25 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;; This code defines a ring data structure. A ring is a
|
||||
;;; (hd-index length . vector)
|
||||
;;; list. You can insert to, remove from, and rotate a ring. When the ring
|
||||
;;; fills up, insertions cause the oldest elts to be quietly dropped.
|
||||
;;;
|
||||
;;; In ring-ref, 0 is the index of the newest element. Higher indexes
|
||||
;;; correspond to older elements until they wrap.
|
||||
;;;
|
||||
;;; hd-index = index of the newest item on the ring.
|
||||
;;; length = number of ring items.
|
||||
;;;
|
||||
;;; These functions are used by the input history mechanism, but they can
|
||||
;;; be used for other purposes as well.
|
||||
;; This code defines a ring data structure. A ring is a
|
||||
;; (hd-index length . vector)
|
||||
;; list. You can insert to, remove from, and rotate a ring. When the ring
|
||||
;; fills up, insertions cause the oldest elts to be quietly dropped.
|
||||
;;
|
||||
;; In ring-ref, 0 is the index of the newest element. Higher indexes
|
||||
;; correspond to older elements until they wrap.
|
||||
;;
|
||||
;; hd-index = index of the newest item on the ring.
|
||||
;; length = number of ring items.
|
||||
;;
|
||||
;; These functions are used by the input history mechanism, but they can
|
||||
;; be used for other purposes as well.
|
||||
|
||||
;;; Code:
|
||||
|
||||
|
|
|
@ -19,11 +19,12 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
;;
|
||||
|
||||
;; The functions in this file detect (`find-emacs-lisp-shadows')
|
||||
;; and display (`list-load-path-shadows') potential load-path
|
||||
;; problems that arise when Emacs Lisp files "shadow" each other.
|
||||
|
|
|
@ -19,8 +19,9 @@
|
|||
;; 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; see the file COPYING. If not, write to the
|
||||
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
;; Boston, MA 02111-1307, USA.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue