Commit c88ab9ce authored by Eric S. Raymond's avatar Eric S. Raymond

*** empty log message ***

parent d501f516
;;; Ring Code
;;;============================================================================
;;; ring.el --- handle rings of marks
;; Copyright (C) 1992 Free Software Foundation, Inc.
;; 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 1, 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 code defines a ring data structure. A ring is a
;;; (hd-index tl-index . vector)
;;; list. You can insert to, remove from, and rotate a ring. When the ring
......@@ -99,3 +117,5 @@ Answer is guaranteed to be non-negative, and less than m."
(vec-index (comint-mod (+ index hd)
(length vec))))
(aref vec vec-index)))))
;;; ring.el ends here
;;; -*-Emacs-Lisp-*- Functions to manipulate environment variables.
;;; setenv.el --- functions to manipulate environment variables.
;;; Copyright Free Software Foundation 1991
;;; This file is part of GNU Emacs.
......@@ -36,3 +37,4 @@ This function works by modifying process-environment."
(provide 'setenv)
;;; setenv.el ends here
;;;; Multi-screen management that is independent of window systems.
;;; screen.el --- multi-screen management independent of window systems.
;;;; Copyright (C) 1990, 1992 Free Software Foundation, Inc.
;;; This file is part of GNU Emacs.
......@@ -270,3 +271,5 @@ under the X Window System."
(define-key ctl-x-3-map "0" 'delete-screen)
(provide 'screen)
;;; screen.el ends here
;; Miscellaneous functions for dealing with Swedish.
;;; swedish.el --- miscellaneous functions for dealing with Swedish.
;; Copyright (C) 1988 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -143,3 +144,5 @@ Leaves point just after the word that looks Swedish."
; (run-hooks 'text-mode-hook))
(provide 'swedish)
;;; swedish.el ends here
;; Hairy rfc822 parser for mail and news and suchlike
;;; rfc822.el --- hairy rfc822 parser for mail and news and suchlike
;; Copyright (C) 1986-1990 Free Software Foundation, Inc.
;; Author Richard Mlynarik.
......@@ -304,3 +305,4 @@
(provide 'rfc822)
;;; rfc822.el ends here
;; "RMAIL" mail reader for Emacs.
;;; rmail.el --- main code of "RMAIL" mail reader for Emacs.
;; Copyright (C) 1985, 1986, 1987, 1988, 1991, 1992 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -1611,3 +1612,4 @@ Leaves original message, deleted, before the undigestified messages."
(provide 'rmail)
;;; rmail.el ends here
;; "RMAIL edit mode" Edit the current message.
;;; rmailedit.el --- "RMAIL edit mode" Edit the current message.
;; Copyright (C) 1985 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -103,3 +104,4 @@ to return to regular RMAIL:
(insert rmail-old-text)
(rmail-cease-edit))
;;; rmailedit.el ends here
;; "RMAIL" mail reader for Emacs.
;;; rmailkwd.el --- part of the "RMAIL" mail reader for Emacs.
;; Copyright (C) 1985, 1988 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -262,3 +263,5 @@ With prefix argument N moves forward N messages with these labels."
(narrow-to-region (- (buffer-size) omin)
(- (buffer-size) omax)))))
keyword))
;;; rmailkwd.el ends here
;;; rmailmsc.el --- miscellaneous support functions for the RMAIL mail reader
;; Copyright (C) 1985 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -43,3 +45,5 @@ If FILE-NAME is empty, remove any inbox list."
(insert "Mail: " file-name "\n"))))))
(setq rmail-inbox-list (rmail-parse-file-inboxes))
(rmail-show-message rmail-current-message))
;;; rmailmsc.el ends here
;; "RMAIL" mail reader for Emacs: output message to a file.
;;; rmailout.el --- "RMAIL" mail reader for Emacs: output message to a file.
;; Copyright (C) 1985, 1987 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -180,3 +181,5 @@ starting with the current one. Deleted messages are skipped and don't count."
(rmail-delete-forward)
(if (> count 0)
(rmail-next-undeleted-message 1)))))
;;; rmailout.el ends here
;;; Rmail: sort messages.
;;; rmailsort.el --- Rmail: sort messages.
;; Copyright (C) 1990 Masanobu UMEDA
;; umerin@tc.Nagasaki.GO.JP?
......@@ -202,3 +203,5 @@ Arguments are MSG and FIELD."
year-string))
(provide 'rmailsort)
;;; rmailsort.el ends here
;; "RMAIL" mail reader for Emacs.
;;; rmailsum.el --- "RMAIL" mail reader for Emacs.
;; Copyright (C) 1985 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -472,3 +473,5 @@ Entering this mode calls value of hook variable rmail-summary-mode-hook."
(delete-window (selected-window))))
;; Switch to the rmail buffer in this window.
(switch-to-buffer rmail-buffer)))
;;; rmailsum.el ends here
;;; USENET news reader for gnu emacs
;;; rnews.el --- USENET news reader for gnu emacs
;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -977,4 +978,6 @@ Mail and USENET news headers are not rotated."
(caesar-region rotnum)
(setq buffer-read-only buffer-status))))
(provide 'rnews) (provide 'rnews)
(provide 'rnews)
;;; rnews.el ends here
;;; USENET news poster/mailer for GNU Emacs
;;; rnewspost.el --- USENET news poster/mailer for GNU Emacs
;; Copyright (C) 1985, 1986, 1987 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -388,3 +389,5 @@ While composing the message, use \\[news-reply-yank-original] to yank the
original message into it."
(interactive)
(mail-other-window nil nil nil nil nil (current-buffer)))
;;; rnewspost.el ends here
;; Mail sending commands for Emacs.
;;; sendmail.el --- mail sending commands for Emacs.
;; Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -662,3 +663,4 @@ The seventh argument ACTIONS is a list of actions to take
(provide 'sendmail)
;;; sendmail.el ends here
;; Spook phrase utility
;;; spook.el --- spook phrase utility for overloading the NSA line eater
;; Copyright (C) 1988 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -107,3 +108,5 @@
(aset vector j temp)
(setq i (1+ i))))
vector)
;;; spook.el ends here
;;; studly.el --- StudlyCaps (tm)(r)(c)(xxx)
;; Copyright (C) 1992 Free Software Foundation, Inc.
;; 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 1, 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.
(defun studlify-region (begin end)
"Studlify-case the region"
(interactive "*r")
......
;; Scheme mode, and its idiosyncratic commands.
;;; scheme.el --- Scheme mode, and its idiosyncratic commands.
;; Copyright (C) 1986, 1987, 1988 Free Software Foundation, Inc.
;; Adapted from Lisp mode by Bill Rozas, jinx@prep.
......@@ -499,3 +500,5 @@ of the start of the containing expression."
(indent-to this-indent)))))))))
(provide 'scheme)
;;; scheme.el ends here
;; Register commands for Emacs.
;;; register.el --- register commands for Emacs.
;; Copyright (C) 1985 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -173,3 +174,5 @@ START and END are buffer positions giving two corners of rectangle."
(if delete-flag
(delete-extract-rectangle start end)
(extract-rectangle start end))))
;;; register.el ends here
;; Replace commands for Emacs.
;;; replace.el --- replace commands for Emacs.
;; Copyright (C) 1985-1991 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -531,3 +532,4 @@ before rotating to the next."
(perform-replace regexp replacements t t nil arg))
(message "Done"))
;;; replace.el ends here
;;; -*- Mode: Emacs-lisp -*-
;;; reposition.el --- center a Lisp function or comment on the screen
;; Copyright (C) 1991 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -187,3 +188,4 @@ first comment line visible (if point is in a comment)."
; (concat "Case " (, case-no) ": %s %s %s %s %s")
; ht line comment-height defun-height defun-depth)))
;;; reposition.el ends here
;; Process command line arguments from within a suspended Emacs job
;;; resume.el --- process command line args from within a suspended Emacs job
;; Copyright (C) 1988 Free Software Foundation, Inc.
;; This file is not yet part of GNU Emacs, but soon will be.
......@@ -157,3 +158,5 @@ and processes these arguments like command line options."
(widen)
(write-region (point-min) (point-max) file nil 'quiet))
(set-buffer-modified-p nil)))
;;; resume.el ends here
;; Display a buffer in rot13.
;;; rot13.el --- display a buffer in rot13.
;; Copyright (C) 1988 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -39,3 +40,5 @@
(set-window-display-table w rot13-display-table)))
(provide 'rot13)
;;; rot13.el ends here
;; Lisp code for GNU Emacs running as server process.
;;; server.el --- Lisp code for GNU Emacs running as server process.
;; Copyright (C) 1986, 1987 Free Software Foundation, Inc.
;; Author William Sommerfeld, wesommer@athena.mit.edu.
;; Changes by peck@sun.com and by rms.
......@@ -296,3 +297,5 @@ Arg NEXT-BUFFER is a suggestion; if it is a live buffer, use it."
(switch-to-buffer (other-buffer)))))
(global-set-key "\C-x#" 'server-edit)
;;; server.el ends here
;;; -*-Emacs-Lisp-*- General command interpreter in a window stuff
;;; shell.el --- general command interpreter in a window stuff
;;; Copyright Olin Shivers (1988).
;;; Please imagine a long, tedious, legalistic 5-page gnu-style copyright
;;; notice appearing here to the effect that you may use this code any
;;; way you like, as long as you don't charge money for it, remove this
;;; notice, or hold me liable for its results.
;;; 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 1, 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.
;;; The changelog is at the end of file.
......@@ -12,9 +25,9 @@
;;; - Olin Shivers (shivers@cs.cmu.edu)
;;; This file defines a a shell-in-a-buffer package (shell mode) built
;;; on top of comint mode. This shell mode is similar to its
;;; counterpart in the GNU Emacs 18 release, but is more featureful,
;;; robust, and uniform than that version.
;;; on top of comint mode. This is actually cmushell with things
;;; renamed to replace its counterpart in Emacs 18. cmushell is more
;;; featureful, robust, and uniform than the Emacs 18 version.
;;; Since this mode is built on top of the general command-interpreter-in-
;;; a-buffer mode (comint mode), it shares a common base functionality,
......@@ -32,25 +45,23 @@
;;; text to the process? Switch selectable?
(require 'comint)
(provide 'shell)
;; YOUR .EMACS FILE
;;=============================================================================
;; Some suggestions for your .emacs file.
;;
;; ; If shell lives in some non-standard directory, you must tell emacs
;; ; If cmushell lives in some non-standard directory, you must tell emacs
;; ; where to get it. This may or may not be necessary.
;; (setq load-path (cons (expand-file-name "~jones/lib/emacs") load-path))
;;
;; ; Autoload shell from file shell.el
;; (autoload 'shell "shell"
;; ; Autoload cmushell from file cmushell.el
;; (autoload 'cmushell "cmushell"
;; "Run an inferior shell process."
;; t)
;;
;; ; Define C-c t to run my favorite command in shell mode:
;; (setq shell-load-hook
;; ; Define C-c t to run my favorite command in cmushell mode:
;; (setq cmushell-load-hook
;; '((lambda ()
;; (define-key shell-mode-map "\C-ct" 'favorite-cmd))))
;; (define-key cmushell-mode-map "\C-ct" 'favorite-cmd))))
;;; Brief Command Documentation:
......@@ -89,23 +100,15 @@
;;; Read the rest of this file for more information.
;;; Emacs 18 SHELL.EL COMPATIBILITY
;;;
;;; The below notes were written before this shell package became the
;;; official shell mode of the standard Emacs distribution, and talk
;;; about getting this package to work well with the old shell package
;;; and its users. This issue isn't quite as relevant now as it was
;;; then, but the notes below should still be useful for people
;;; modifying elisp packages that used the old shell mode to use this
;;; one. Note that some of the variables referred to have lost their
;;; `cmu-' prefix.
;;;
;;; SHELL.EL COMPATIBILITY
;;; Notes from when this was called cmushell, and was not the standard emacs
;;; shell package.
;;;============================================================================
;;; In brief: this package should have no trouble coexisting with shell.el.
;;;
;;; Most customising variables -- e.g., explicit-shell-file-name -- are the
;;; same, so the users shouldn't have much trouble. Hooks have different
;;; names, however, so you can customise shell mode differently from shell
;;; names, however, so you can customise shell mode differently from cmushell
;;; mode. You basically just have to remember to type M-x cmushell instead of
;;; M-x shell.
;;;
......@@ -133,12 +136,8 @@
;;; ===========================================================================
;;;
;In loaddefs.el now.
;(defconst shell-prompt-pattern
; "^[^#$%>]*[#$%>] *"
; "*Regexp used by Newline command to match subshell prompts.
;;; Change the doc string for shell-prompt-pattern:
(put 'shell-prompt-pattern 'variable-documentation
;;;###autoload
(defconst shell-prompt-pattern "^[^#$%>]*[#$%>] *"
"Regexp to match prompts in the inferior shell.
Defaults to \"^[^#$%>]*[#$%>] *\", which works pretty well.
This variable is used to initialise comint-prompt-regexp in the
......@@ -167,11 +166,12 @@ This is a fine thing to set in your .emacs file.")
"*Args passed to inferior shell by M-x shell, if the shell is csh.
Value is a list of strings, which may be nil.")
;;; All the above vars aren't prefixed "shell-" to make them
;;; All the above vars aren't prefixed "cmushell-" to make them
;;; backwards compatible w/shell.el and old .emacs files.
(defvar shell-dirstack nil
"List of directories saved by pushd in this buffer's shell.")
"List of directories saved by pushd in this buffer's shell.
Thus, this does not include the shell's current directory.")
(defvar shell-dirstack-query "dirs"
"Command used by shell-resync-dirlist to query shell.")
......@@ -194,10 +194,10 @@ Value is a list of strings, which may be nil.")
"Major mode for interacting with an inferior shell.
Return after the end of the process' output sends the text from the
end of process to the end of the current line.
Return before end of process output copies rest of line to end (skipping
the prompt) and sends it.
Return before end of process output copies the current line (except
for the prompt) to the end of the buffer and sends it.
M-x send-invisible reads a line of text without echoing it, and sends it to
the shell.
the shell. This is useful for entering passwords.
If you accidentally suspend your process, use \\[comint-continue-subjob]
to continue it.
......@@ -228,6 +228,7 @@ to match their respective commands."
(run-hooks 'shell-mode-hook))
;;;###autoload
(defun shell ()
"Run an inferior shell, with I/O through buffer *shell*.
If buffer exists but shell process is not running, make new shell.
......@@ -509,6 +510,8 @@ command again."
;;; Interfacing to client packages (and converting them)
;;; Notes from when this was called cmushell, and was not the standard emacs
;;; shell package. Many of the conversions discussed here have been done.
;;;============================================================================
;;; Several gnu packages (tex-mode, background, dbx, gdb, kermit, prolog,
;;; telnet are some) use the shell package as clients. Most of them would
......@@ -598,3 +601,11 @@ This is a good place to put keybindings.")
;;;
;;; Olin 3/12/91
;;; - Moved comint-dynamic-complete (filename completion) from M-tab to tab.
;;;
;;; Jim Blandy 10/30/91
;;; - Removed the "cmu" prefix from names, renamed file to shell.el,
;;; to become the standard shell package.
(provide 'shell)
;;; shell.el ends here
;; Basic editing commands for Emacs
;;; simple.el --- basic editing commands for Emacs
;; Copyright (C) 1985, 1986, 1987, 1992 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -704,6 +705,17 @@ a number counts as a prefix arg."
(concat string (car kill-ring))
(concat (car kill-ring) string))))
(defvar interprogram-cut-function nil
"Function to call to make a killed region available to other programs.
Most window systems provide some sort of facility for cutting and
pasting text between the windows of different programs. On startup,
this variable is set to a function which emacs will call to make the
most recently killed text available to other programs.
The function takes one argument, TEXT, which is a string containing
the text which should be made available.")
(defun kill-region (beg end)
"Kill between point and mark.
The text is deleted but saved in the kill ring.
......@@ -728,6 +740,8 @@ to make one entry in the kill ring."
;; Take the same string recorded for undo
;; and put it in the kill-ring.
(setq kill-ring (cons (car (car buffer-undo-list)) kill-ring))
(if interprogram-cut-function
(funcall interprogram-cut-function (car kill-ring)))
(if (> (length kill-ring) kill-ring-max)
(setcdr (nthcdr (1- kill-ring-max) kill-ring) nil))
(setq this-command 'kill-region)
......@@ -735,17 +749,6 @@ to make one entry in the kill ring."
(copy-region-as-kill beg end)
(or buffer-read-only (delete-region beg end))))
(defvar interprogram-cut-function nil
"Function to call to make a killed region available to other programs.
Most window systems provide some sort of facility for cutting and
pasting text between the windows of different programs. On startup,
this variable is set to a function which emacs will call to make the
most recently killed text available to other programs.
The function takes one argument, TEXT, which is a string containing
the text which should be made available.")
(defun copy-region-as-kill (beg end)
"Save the region as if killed, but don't kill it.
If `interprogram-cut-function' is non-nil, also save the text for a window
......@@ -1408,11 +1411,16 @@ Setting this variable automatically makes it local to the current buffer.")
(defconst comment-multi-line nil
"*Non-nil means \\[indent-new-comment-line] should continue same comment
on new line, with no new terminator or starter.")
on new line, with no new terminator or starter.
This is obsolete because you might as well use \\[newline-and-indent].")
(defun indent-new-comment-line ()
"Break line at point and indent, continuing comment if presently within one.
The body of the continued comment is indented under the previous comment line."
The body of the continued comment is indented under the previous comment line.
This command is intended for styles where you write a comment per line,
starting a new comment (and terminating it if necessary) on each line.
If you want to continue one comment across several lines, use \\[newline-and-indent]."
(interactive "*")
(let (comcol comstart)
(skip-chars-backward " \t")
......@@ -1420,39 +1428,42 @@ The body of the continued comment is indented under the previous comment line."
(progn (skip-chars-forward " \t")
(point)))
(insert ?\n)
(save-excursion
(if (and comment-start-skip
(let ((opoint (point)))
(forward-line -1)
(re-search-forward comment-start-skip opoint t)))
;; The old line is a comment.
;; Set WIN to the pos of the comment-start.
;; But if the comment is empty, look at preceding lines
;; to find one that has a nonempty comment.
(let ((win (match-beginning 0)))
(while (and (eolp) (not (bobp))
(let (opoint)
(beginning-of-line)
(setq opoint (point))
(forward-line -1)
(re-search-forward comment-start-skip opoint t)))
(setq win (match-beginning 0)))
;; Indent this line like what we found.
(goto-char win)
(setq comcol (current-column))
(setq comstart (buffer-substring (point) (match-end 0))))))
(if (not comment-multi-line)
(save-excursion
(if (and comment-start-skip
(let ((opoint (point)))
(forward-line -1)
(re-search-forward comment-start-skip opoint t)))
;; The old line is a comment.
;; Set WIN to the pos of the comment-start.
;; But if the comment is empty, look at preceding lines
;; to find one that has a nonempty comment.
(let ((win (match-beginning 0)))
(while (and (eolp) (not (bobp))
(let (opoint)
(beginning-of-line)
(setq opoint (point))
(forward-line -1)
(re-search-forward comment-start-skip opoint t)))
(setq win (match-beginning 0)))
;; Indent this line like what we found.
(goto-char win)
(setq comcol (current-column))
(setq comstart (buffer-substring (point) (match-end 0)))))))
(if comcol
(let ((comment-column comcol)
(comment-start comstart)
(comment-end comment-end))
(and comment-end (not (equal comment-end ""))
(if (not comment-multi-line)
; (if (not comment-multi-line)
(progn
(forward-char -1)
(insert comment-end)
(forward-char 1))
(setq comment-column (+ comment-column (length comment-start))
comment-start "")))
; (setq comment-column (+ comment-column (length comment-start))
; comment-start "")
; )
)
(if (not (eolp))
(setq comment-end ""))
(insert ?\n)
......@@ -1500,8 +1511,14 @@ selective-display's value is separate for each buffer."
(interactive "P")
(if (eq selective-display t)
(error "selective-display already in use for marked lines"))
(setq selective-display
(and arg (prefix-numeric-value arg)))
(let ((current-vpos
(save-restriction
(narrow-to-region (point-min) (point))
(goto-char (window-start))
(vertical-motion (window-height)))))
(setq selective-display
(and arg (prefix-numeric-value arg)))
(recenter current-vpos))
(set-window-start (selected-window) (window-start (selected-window)))
(princ "selective-display set to " t)
(prin1 selective-display t)
......@@ -1694,3 +1711,5 @@ If you want VALUE to be a string, you must surround it with doublequotes."
(defconst mode-specific-map (symbol-function 'mode-specific-command-prefix)
"Keymap for characters following C-c.")
(define-key global-map "\C-c" 'mode-specific-command-prefix)
;;; simple.el ends here
;; Commands to sort text in an Emacs buffer.
;;; sort.el --- commands to sort text in an Emacs buffer.
;; Copyright (C) 1986, 1987 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
......@@ -445,3 +446,4 @@ From a program takes two point or marker arguments, BEG and END."
(provide 'sort)
;;; sort.el ends here