annotate lisp/options.el @ 24419:30e478cd167e

(shell-command-default-error-buffer): Renamed from shell-command-on-region-default-error-buffer. (shell-command-on-region): Mention in echo area when there is some error output. Mention success or failure, too. Accumulate multiple error outputs going forward, with formfeed in between. Display the error buffer when we have put something in it. (shell-command): Add the ERROR-BUFFER argument feature.
author Karl Heuer <kwzh@gnu.org>
date Mon, 01 Mar 1999 03:19:32 +0000
parents 11218164bc54
children d4276a9b567e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
1 ;;; options.el --- edit Options command for Emacs.
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
2
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
3 ;; Copyright (C) 1985 Free Software Foundation, Inc.
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
4
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
5 ;; Maintainer: FSF
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
6
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
7 ;; This file is part of GNU Emacs.
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
8
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
9 ;; GNU Emacs is free software; you can redistribute it and/or modify
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
10 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
11 ;; the Free Software Foundation; either version 2, or (at your option)
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
12 ;; any later version.
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
13
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
14 ;; GNU Emacs is distributed in the hope that it will be useful,
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
17 ;; GNU General Public License for more details.
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
18
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
19 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 11027
diff changeset
20 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 11027
diff changeset
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 11027
diff changeset
22 ;; Boston, MA 02111-1307, USA.
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
23
2308
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
24 ;;; Commentary:
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
25
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
26 ;; This code provides functions to list and edit the values of all global
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
27 ;; option variables known to loaded Emacs Lisp code. There are two entry
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
28 ;; points, `list-options' and `edit' options'. The latter enters a major
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
29 ;; mode specifically for editing option values. Do `M-x describe-mode' in
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
30 ;; that context for more details.
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
31
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
32 ;; The customization buffer feature is intended to make this obsolete.
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
33
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
34 ;;; Code:
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
35
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 233
diff changeset
36 ;;;###autoload
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
37 (defun list-options ()
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
38 "Display a list of Emacs user options, with values and documentation."
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
39 (interactive)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
40 (save-excursion
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
41 (set-buffer (get-buffer-create "*List Options*"))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
42 (Edit-options-mode))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
43 (with-output-to-temp-buffer "*List Options*"
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
44 (let (vars)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
45 (mapatoms (function (lambda (sym)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
46 (if (user-variable-p sym)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
47 (setq vars (cons sym vars))))))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
48 (setq vars (sort vars 'string-lessp))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
49 (while vars
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
50 (let ((sym (car vars)))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
51 (princ ";; ")
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
52 (prin1 sym)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
53 (princ ":\n\t")
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
54 (prin1 (symbol-value sym))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
55 (terpri)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
56 (princ (substitute-command-keys
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
57 (documentation-property sym 'variable-documentation)))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
58 (princ "\n;;\n"))
11027
21761da820cd (edit-options): Make the buffer read-only.
Richard M. Stallman <rms@gnu.org>
parents: 10887
diff changeset
59 (setq vars (cdr vars)))))
21761da820cd (edit-options): Make the buffer read-only.
Richard M. Stallman <rms@gnu.org>
parents: 10887
diff changeset
60 (save-excursion
21761da820cd (edit-options): Make the buffer read-only.
Richard M. Stallman <rms@gnu.org>
parents: 10887
diff changeset
61 (set-buffer "*List Options*")
21761da820cd (edit-options): Make the buffer read-only.
Richard M. Stallman <rms@gnu.org>
parents: 10887
diff changeset
62 (setq buffer-read-only t)))
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
63
258
1e0bc00dca7a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 233
diff changeset
64 ;;;###autoload
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
65 (defun edit-options ()
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
66 "Edit a list of Emacs user option values.
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
67 Selects a buffer containing such a list,
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
68 in which there are commands to set the option values.
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
69 Type \\[describe-mode] in that buffer for a list of commands."
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
70 (interactive)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
71 (list-options)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
72 (pop-to-buffer "*List Options*"))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
73
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
74 (defvar Edit-options-mode-map
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
75 (let ((map (make-keymap)))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
76 (define-key map "s" 'Edit-options-set)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
77 (define-key map "x" 'Edit-options-toggle)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
78 (define-key map "1" 'Edit-options-t)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
79 (define-key map "0" 'Edit-options-nil)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
80 (define-key map "p" 'backward-paragraph)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
81 (define-key map " " 'forward-paragraph)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
82 (define-key map "n" 'forward-paragraph)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
83 map)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
84 "")
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
85
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
86 ;; Edit Options mode is suitable only for specially formatted data.
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
87 (put 'Edit-options-mode 'mode-class 'special)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
88
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
89 (defun Edit-options-mode ()
233
3f28d7f1c174 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 228
diff changeset
90 "\\<Edit-options-mode-map>\
3f28d7f1c174 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 228
diff changeset
91 Major mode for editing Emacs user option settings.
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
92 Special commands are:
233
3f28d7f1c174 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 228
diff changeset
93 \\[Edit-options-set] -- set variable point points at. New value read using minibuffer.
3f28d7f1c174 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 228
diff changeset
94 \\[Edit-options-toggle] -- toggle variable, t -> nil, nil -> t.
3f28d7f1c174 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 228
diff changeset
95 \\[Edit-options-t] -- set variable to t.
3f28d7f1c174 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 228
diff changeset
96 \\[Edit-options-nil] -- set variable to nil.
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
97 Changed values made by these commands take effect immediately.
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
98
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
99 Each variable description is a paragraph.
233
3f28d7f1c174 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 228
diff changeset
100 For convenience, the characters \\[backward-paragraph] and \\[forward-paragraph] move back and forward by paragraphs."
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
101 (kill-all-local-variables)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
102 (set-syntax-table emacs-lisp-mode-syntax-table)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
103 (use-local-map Edit-options-mode-map)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
104 (make-local-variable 'paragraph-separate)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
105 (setq paragraph-separate "[^\^@-\^?]")
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
106 (make-local-variable 'paragraph-start)
10887
b808c61b7ee1 (Edit-options-mode): Remove ^ from paragraph-start.
Boris Goldowsky <boris@gnu.org>
parents: 2308
diff changeset
107 (setq paragraph-start "\t")
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
108 (setq truncate-lines t)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
109 (setq major-mode 'Edit-options-mode)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
110 (setq mode-name "Options")
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
111 (run-hooks 'Edit-options-mode-hook))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
112
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
113 (defun Edit-options-set () (interactive)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
114 (Edit-options-modify
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
115 '(lambda (var) (eval-minibuffer (concat "New " (symbol-name var) ": ")))))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
116
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
117 (defun Edit-options-toggle () (interactive)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
118 (Edit-options-modify '(lambda (var) (not (symbol-value var)))))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
119
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
120 (defun Edit-options-t () (interactive)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
121 (Edit-options-modify '(lambda (var) t)))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
122
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
123 (defun Edit-options-nil () (interactive)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
124 (Edit-options-modify '(lambda (var) nil)))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
125
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
126 (defun Edit-options-modify (modfun)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
127 (save-excursion
11027
21761da820cd (edit-options): Make the buffer read-only.
Richard M. Stallman <rms@gnu.org>
parents: 10887
diff changeset
128 (let ((buffer-read-only nil) var pos)
228
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
129 (re-search-backward "^;; \\|\\`")
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
130 (forward-char 3)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
131 (setq pos (point))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
132 (save-restriction
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
133 (narrow-to-region pos (progn (end-of-line) (1- (point))))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
134 (goto-char pos)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
135 (setq var (read (current-buffer))))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
136 (goto-char pos)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
137 (forward-line 1)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
138 (forward-char 1)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
139 (save-excursion
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
140 (set var (funcall modfun var)))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
141 (kill-sexp 1)
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
142 (prin1 (symbol-value var) (current-buffer)))))
997a3c98d127 Initial revision
Raul Acevedo <kitaro@gnu.org>
parents:
diff changeset
143
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
144 (provide 'options)
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
145
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 258
diff changeset
146 ;;; options.el ends here