Update FSF's address.

This commit is contained in:
Erik Naggum 1996-01-14 07:34:30 +00:00
parent 8f65287798
commit b578f267af
351 changed files with 5589 additions and 5125 deletions

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

File diff suppressed because it is too large Load diff

View file

@ -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:

View file

@ -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"
;;

View file

@ -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:

View file

@ -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:

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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

View file

@ -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:

View file

@ -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:

File diff suppressed because it is too large Load diff

View file

@ -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.
;;

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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.

View file

@ -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:

View file

@ -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:

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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

View file

@ -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))

View file

@ -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))

View file

@ -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)

View file

@ -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

View file

@ -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:

View file

@ -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)

View file

@ -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)

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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|

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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)

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:
;;

View file

@ -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")

View file

@ -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:

View file

@ -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.

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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))

View file

@ -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:

View file

@ -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:

View file

@ -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:

View file

@ -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.

View file

@ -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