aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2005-03-16 15:59:10 +0000
committerKaroly Lorentey2005-03-16 15:59:10 +0000
commita810eaf92838985d9648acb470dc3c8d26847c15 (patch)
tree026be88abb42bb9bbfcf6574e532f4339b82f211
parent3453bb3a36766b297909a2b1aae2681258ab3118 (diff)
parent613f367343dc8e9ab03519472d7b49895f184ab1 (diff)
downloademacs-a810eaf92838985d9648acb470dc3c8d26847c15.tar.gz
emacs-a810eaf92838985d9648acb470dc3c8d26847c15.zip
Merged from miles@gnu.org--gnu-2005 (patch 159)
Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-159 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-307
-rw-r--r--lisp/ChangeLog47
-rw-r--r--lisp/bindings.el1
-rw-r--r--lisp/custom.el112
-rw-r--r--lisp/facemenu.el8
-rw-r--r--lisp/font-lock.el7
-rw-r--r--lisp/help-mode.el8
-rw-r--r--lisp/jit-lock.el11
-rw-r--r--lisp/menu-bar.el2
-rw-r--r--lisp/novice.el13
-rw-r--r--lisp/simple.el21
-rw-r--r--lisp/startup.el52
-rw-r--r--lisp/textmodes/flyspell.el2
-rw-r--r--lispref/ChangeLog49
-rw-r--r--lispref/calendar.texi4
-rw-r--r--lispref/display.texi80
-rw-r--r--lispref/elisp.texi10
-rw-r--r--lispref/files.texi19
-rw-r--r--lispref/frames.texi13
-rw-r--r--lispref/hash.texi6
-rw-r--r--lispref/keymaps.texi14
-rw-r--r--lispref/lists.texi3
-rw-r--r--lispref/minibuf.texi6
-rw-r--r--lispref/modes.texi9
-rw-r--r--lispref/objects.texi8
-rw-r--r--lispref/os.texi49
-rw-r--r--lispref/searching.texi4
-rw-r--r--lispref/streams.texi2
-rw-r--r--lispref/strings.texi6
-rw-r--r--lispref/text.texi2
-rw-r--r--lispref/windows.texi3
-rw-r--r--man/ChangeLog78
-rw-r--r--man/building.texi48
-rw-r--r--man/calendar.texi12
-rw-r--r--man/commands.texi12
-rw-r--r--man/custom.texi5
-rw-r--r--man/display.texi16
-rw-r--r--man/eshell.texi193
-rw-r--r--man/files.texi38
-rw-r--r--man/fixit.texi7
-rw-r--r--man/glossary.texi73
-rw-r--r--man/help.texi18
-rw-r--r--man/mh-e.texi2
-rw-r--r--man/mini.texi4
-rw-r--r--man/misc.texi122
-rw-r--r--man/pcl-cvs.texi41
-rw-r--r--man/programs.texi4
-rw-r--r--man/rmail.texi139
-rw-r--r--man/sending.texi35
-rw-r--r--man/text.texi2
-rw-r--r--man/url.texi8
-rw-r--r--man/woman.texi7
-rw-r--r--src/ChangeLog17
-rw-r--r--src/blockinput.h25
-rw-r--r--src/eval.c9
-rw-r--r--src/keyboard.c5
-rw-r--r--src/lisp.h5
56 files changed, 748 insertions, 748 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d65a446a376..a3826bf9a4b 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,50 @@
12005-03-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * menu-bar.el (menu-bar-file-menu): Add the same :enable to
4 "Open Directory" as for "Open File".
5
62005-03-06 Chong Yidong <cyd@stupidchicken.com>
7
8 * simple.el (activate-mark-hook, deactivate-mark-hook): Add defvars.
9 (push-mark-command): Run activate-mark-hook.
10
112005-03-06 Richard M. Stallman <rms@gnu.org>
12
13 * help-mode.el (help-mode-finish): Don't alter the element
14 in view-return-to-alist if there already is one.
15
16 * jit-lock.el (jit-lock-stealth-fontify): When calling sit-for,
17 make sure the current buffer is the expected one.
18
19 * novice.el (disabled-command-function): Output in *Disabled Command*.
20 Explicitly ignore non-keyboard events, and explicitly handle C-g.
21
22 * textmodes/flyspell.el (flyspell-large-region):
23 Pass args differently for aspell.
24
25 * files.el (mode-require-final-newline): Doc fix.
26
272005-03-03 Stephan Stahl <stahl@eos.franken.de> (tiny change)
28
29 * progmodes/which-func.el (which-function):
30 Specify NOERROR when calling imenu--make-index-alist.
31
322005-03-05 Stefan Monnier <monnier@iro.umontreal.ca>
33
34 * simple.el (normal-erase-is-backspace): Define default value.
35
36 * custom.el (custom-theme-set-variables): Remove unused var `immediate'.
37 (custom-reevaluate-setting): Simple function to handle
38 variables that are defined before their default value can really
39 be computed.
40
41 * startup.el (command-line): Use it for temporary-file-directory,
42 small-emporary-file-directory, auto-save-file-name-transforms,
43 blink-cursor-mode, and normal-erase-is-backspace.
44
45 * font-lock.el (font-lock-fontify-keywords-region): Ensure forward
46 progress, even with buggy anchored keywords.
47
12005-03-05 Luc Teirlinck <teirllm@auburn.edu> 482005-03-05 Luc Teirlinck <teirllm@auburn.edu>
2 49
3 * simple.el (goto-line): Remove unbalanced final parenthesis. 50 * simple.el (goto-line): Remove unbalanced final parenthesis.
diff --git a/lisp/bindings.el b/lisp/bindings.el
index 7d67095566c..a581027993c 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -701,6 +701,7 @@ language you are using."
701(define-key global-map "\C-p" 'previous-line) 701(define-key global-map "\C-p" 'previous-line)
702(define-key ctl-x-map "\C-n" 'set-goal-column) 702(define-key ctl-x-map "\C-n" 'set-goal-column)
703(define-key global-map "\C-e" 'move-end-of-line) 703(define-key global-map "\C-e" 'move-end-of-line)
704(define-key esc-map "g" 'goto-line)
704 705
705;;(defun function-key-error () 706;;(defun function-key-error ()
706;; (interactive) 707;; (interactive)
diff --git a/lisp/custom.el b/lisp/custom.el
index 13195c7f78f..77b54a109c5 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -1,6 +1,6 @@
1;;; custom.el --- tools for declaring and initializing options 1;;; custom.el --- tools for declaring and initializing options
2;; 2;;
3;; Copyright (C) 1996, 1997, 1999, 2001, 2002, 2004 3;; Copyright (C) 1996, 1997, 1999, 2001, 2002, 2004, 2005
4;; Free Software Foundation, Inc. 4;; Free Software Foundation, Inc.
5;; 5;;
6;; Author: Per Abrahamsen <abraham@dina.kvl.dk> 6;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
@@ -726,6 +726,15 @@ handle SYMBOL properly.
726COMMENT is a comment string about SYMBOL." 726COMMENT is a comment string about SYMBOL."
727 (apply 'custom-theme-set-variables 'user args)) 727 (apply 'custom-theme-set-variables 'user args))
728 728
729(defun custom-reevaluate-setting (symbol)
730 "Reset the value of SYMBOL by re-evaluating its saved or default value.
731This is useful for variables that are defined before their default value
732can really be computed. E.g. dumped variables whose default depends on
733run-time information."
734 (funcall (or (get symbol 'custom-set) 'set-default)
735 symbol
736 (eval (car (or (get symbol 'saved-value) (get symbol 'standard-value))))))
737
729(defun custom-theme-set-variables (theme &rest args) 738(defun custom-theme-set-variables (theme &rest args)
730 "Initialize variables for theme THEME according to settings in ARGS. 739 "Initialize variables for theme THEME according to settings in ARGS.
731Each of the arguments in ARGS should be a list of this form: 740Each of the arguments in ARGS should be a list of this form:
@@ -753,44 +762,43 @@ SYMBOL's property `force-value' is set to the symbol `immediate'.
753EXP itself is saved unevaluated as SYMBOL property `saved-value' and 762EXP itself is saved unevaluated as SYMBOL property `saved-value' and
754in SYMBOL's list property `theme-value' \(using `custom-push-theme')." 763in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
755 (custom-check-theme theme) 764 (custom-check-theme theme)
756 (let ((immediate (get theme 'theme-immediate))) 765 (setq args
757 (setq args 766 (sort args
758 (sort args 767 (lambda (a1 a2)
759 (lambda (a1 a2) 768 (let* ((sym1 (car a1))
760 (let* ((sym1 (car a1)) 769 (sym2 (car a2))
761 (sym2 (car a2)) 770 (1-then-2 (memq sym1 (get sym2 'custom-dependencies)))
762 (1-then-2 (memq sym1 (get sym2 'custom-dependencies))) 771 (2-then-1 (memq sym2 (get sym1 'custom-dependencies))))
763 (2-then-1 (memq sym2 (get sym1 'custom-dependencies)))) 772 (cond ((and 1-then-2 2-then-1)
764 (cond ((and 1-then-2 2-then-1) 773 (error "Circular custom dependency between `%s' and `%s'"
765 (error "Circular custom dependency between `%s' and `%s'" 774 sym1 sym2))
766 sym1 sym2)) 775 (2-then-1 nil)
767 (2-then-1 nil) 776 ;; Put symbols with :require last. The macro
768 ;; Put symbols with :require last. The macro 777 ;; define-minor-mode generates a defcustom
769 ;; define-minor-mode generates a defcustom 778 ;; with a :require and a :set, where the
770 ;; with a :require and a :set, where the 779 ;; setter function calls the mode function.
771 ;; setter function calls the mode function. 780 ;; Putting symbols with :require last ensures
772 ;; Putting symbols with :require last ensures 781 ;; that the mode function will see other
773 ;; that the mode function will see other 782 ;; customized values rather than default
774 ;; customized values rather than default 783 ;; values.
775 ;; values. 784 (t (nth 3 a2)))))))
776 (t (nth 3 a2))))))) 785 (while args
777 (while args 786 (let ((entry (car args)))
778 (let ((entry (car args))) 787 (if (listp entry)
779 (if (listp entry) 788 (let* ((symbol (indirect-variable (nth 0 entry)))
780 (let* ((symbol (indirect-variable (nth 0 entry))) 789 (value (nth 1 entry))
781 (value (nth 1 entry)) 790 (now (nth 2 entry))
782 (now (nth 2 entry)) 791 (requests (nth 3 entry))
783 (requests (nth 3 entry)) 792 (comment (nth 4 entry))
784 (comment (nth 4 entry)) 793 set)
785 set) 794 (when requests
786 (when requests 795 (put symbol 'custom-requests requests)
787 (put symbol 'custom-requests requests) 796 (mapc 'require requests))
788 (mapc 'require requests)) 797 (setq set (or (get symbol 'custom-set) 'custom-set-default))
789 (setq set (or (get symbol 'custom-set) 'custom-set-default)) 798 (put symbol 'saved-value (list value))
790 (put symbol 'saved-value (list value)) 799 (put symbol 'saved-variable-comment comment)
791 (put symbol 'saved-variable-comment comment) 800 (custom-push-theme 'theme-value symbol theme 'set value)
792 (custom-push-theme 'theme-value symbol theme 'set value) 801 ;; Allow for errors in the case where the setter has
793 ;; Allow for errors in the case where the setter has
794 ;; changed between versions, say, but let the user know. 802 ;; changed between versions, say, but let the user know.
795 (condition-case data 803 (condition-case data
796 (cond (now 804 (cond (now
@@ -802,18 +810,18 @@ in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
802 (funcall set symbol (eval value)))) 810 (funcall set symbol (eval value))))
803 (error 811 (error
804 (message "Error setting %s: %s" symbol data))) 812 (message "Error setting %s: %s" symbol data)))
805 (setq args (cdr args)) 813 (setq args (cdr args))
806 (and (or now (default-boundp symbol)) 814 (and (or now (default-boundp symbol))
807 (put symbol 'variable-comment comment))) 815 (put symbol 'variable-comment comment)))
808 ;; Old format, a plist of SYMBOL VALUE pairs. 816 ;; Old format, a plist of SYMBOL VALUE pairs.
809 (message "Warning: old format `custom-set-variables'") 817 (message "Warning: old format `custom-set-variables'")
810 (ding) 818 (ding)
811 (sit-for 2) 819 (sit-for 2)
812 (let ((symbol (indirect-variable (nth 0 args))) 820 (let ((symbol (indirect-variable (nth 0 args)))
813 (value (nth 1 args))) 821 (value (nth 1 args)))
814 (put symbol 'saved-value (list value)) 822 (put symbol 'saved-value (list value))
815 (custom-push-theme 'theme-value symbol theme 'set value)) 823 (custom-push-theme 'theme-value symbol theme 'set value))
816 (setq args (cdr (cdr args)))))))) 824 (setq args (cdr (cdr args)))))))
817 825
818(defun custom-set-default (variable value) 826(defun custom-set-default (variable value)
819 "Default :set function for a customizable variable. 827 "Default :set function for a customizable variable.
@@ -1091,5 +1099,5 @@ This means reset VARIABLE to its value in TO-THEME."
1091 1099
1092(provide 'custom) 1100(provide 'custom)
1093 1101
1094;;; arch-tag: 041b6116-aabe-4f9a-902d-74092bc3dab2 1102;; arch-tag: 041b6116-aabe-4f9a-902d-74092bc3dab2
1095;;; custom.el ends here 1103;;; custom.el ends here
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index 127b8fe608b..a996d4c15e7 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -39,8 +39,8 @@
39;; modifications before inserting or typing anything. 39;; modifications before inserting or typing anything.
40;; 40;;
41;; Faces can be selected from the keyboard as well. 41;; Faces can be selected from the keyboard as well.
42;; The standard keybindings are M-g (or ESC g) + letter: 42;; The standard keybindings are M-o (or ESC o) + letter:
43;; M-g i = "set italic", M-g b = "set bold", etc. 43;; M-o i = "set italic", M-o b = "set bold", etc.
44 44
45;;; Customization: 45;;; Customization:
46;; An alternative set of keybindings that may be easier to type can be set up 46;; An alternative set of keybindings that may be easier to type can be set up
@@ -91,12 +91,12 @@
91 (require 'button)) 91 (require 'button))
92 92
93;;; Provide some binding for startup: 93;;; Provide some binding for startup:
94;;;###autoload (define-key global-map "\M-g" 'facemenu-keymap) 94;;;###autoload (define-key global-map "\M-o" 'facemenu-keymap)
95;;;###autoload (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap) 95;;;###autoload (autoload 'facemenu-keymap "facemenu" "Keymap for face-changing commands." t 'keymap)
96 96
97;; Global bindings: 97;; Global bindings:
98(define-key global-map [C-down-mouse-2] 'facemenu-menu) 98(define-key global-map [C-down-mouse-2] 'facemenu-menu)
99(define-key global-map "\M-g" 'facemenu-keymap) 99(define-key global-map "\M-o" 'facemenu-keymap)
100 100
101(defgroup facemenu nil 101(defgroup facemenu nil
102 "Create a face menu for interactively adding fonts to text" 102 "Create a face menu for interactively adding fonts to text"
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 0b82e738014..f2cd0985958 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1,7 +1,7 @@
1;;; font-lock.el --- Electric font lock mode 1;;; font-lock.el --- Electric font lock mode
2 2
3;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 3;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
4;; 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. 4;; 2000, 2001, 2002, 2003, 2004 2005 Free Software Foundation, Inc.
5 5
6;; Author: jwz, then rms, then sm 6;; Author: jwz, then rms, then sm
7;; Maintainer: FSF 7;; Maintainer: FSF
@@ -1425,7 +1425,10 @@ LOUDLY, if non-nil, allows progress-meter bar."
1425 (while highlights 1425 (while highlights
1426 (if (numberp (car (car highlights))) 1426 (if (numberp (car (car highlights)))
1427 (font-lock-apply-highlight (car highlights)) 1427 (font-lock-apply-highlight (car highlights))
1428 (font-lock-fontify-anchored-keywords (car highlights) end)) 1428 (let ((pos (point)))
1429 (font-lock-fontify-anchored-keywords (car highlights) end)
1430 ;; Ensure forward progress.
1431 (if (< (point) pos) (goto-char pos))))
1429 (setq highlights (cdr highlights)))) 1432 (setq highlights (cdr highlights))))
1430 (setq keywords (cdr keywords))))) 1433 (setq keywords (cdr keywords)))))
1431 1434
diff --git a/lisp/help-mode.el b/lisp/help-mode.el
index e9d3561d251..8b0284089fc 100644
--- a/lisp/help-mode.el
+++ b/lisp/help-mode.el
@@ -194,8 +194,12 @@ Commands:
194;;;###autoload 194;;;###autoload
195(defun help-mode-finish () 195(defun help-mode-finish ()
196 (let ((entry (assq (selected-window) view-return-to-alist))) 196 (let ((entry (assq (selected-window) view-return-to-alist)))
197 (if entry (setcdr entry (cons (selected-window) 197 (if entry
198 help-return-method)) 198 ;; When entering Help mode from the Help window,
199 ;; such as by following a link, preserve the same
200 ;; meaning for the q command.
201 ;; (setcdr entry (cons (selected-window) help-return-method))
202 nil
199 (setq view-return-to-alist 203 (setq view-return-to-alist
200 (cons (cons (selected-window) help-return-method) 204 (cons (cons (selected-window) help-return-method)
201 view-return-to-alist)))) 205 view-return-to-alist))))
diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el
index 43c8457c80b..fe64d871d96 100644
--- a/lisp/jit-lock.el
+++ b/lisp/jit-lock.el
@@ -415,6 +415,7 @@ This functions is called after Emacs has been idle for
415 (unless (or executing-kbd-macro 415 (unless (or executing-kbd-macro
416 (window-minibuffer-p (selected-window))) 416 (window-minibuffer-p (selected-window)))
417 (let ((buffers (buffer-list)) 417 (let ((buffers (buffer-list))
418 (outer-buffer (current-buffer))
418 minibuffer-auto-raise 419 minibuffer-auto-raise
419 message-log-max) 420 message-log-max)
420 (with-local-quit 421 (with-local-quit
@@ -449,7 +450,10 @@ This functions is called after Emacs has been idle for
449 (point (point-min))) 450 (point (point-min)))
450 (while (and (setq start 451 (while (and (setq start
451 (jit-lock-stealth-chunk-start point)) 452 (jit-lock-stealth-chunk-start point))
452 (sit-for nice)) 453 ;; In case sit-for runs any timers,
454 ;; give them the expected current buffer.
455 (with-current-buffer outer-buffer
456 (sit-for nice)))
453 457
454 ;; fontify a block. 458 ;; fontify a block.
455 (jit-lock-fontify-now start (+ start jit-lock-chunk-size)) 459 (jit-lock-fontify-now start (+ start jit-lock-chunk-size))
@@ -461,7 +465,10 @@ This functions is called after Emacs has been idle for
461 ;; Wait a little if load is too high. 465 ;; Wait a little if load is too high.
462 (when (and jit-lock-stealth-load 466 (when (and jit-lock-stealth-load
463 (> (car (load-average)) jit-lock-stealth-load)) 467 (> (car (load-average)) jit-lock-stealth-load))
464 (sit-for (or jit-lock-stealth-time 30))))))))))))) 468 ;; In case sit-for runs any timers,
469 ;; give them the expected current buffer.
470 (with-current-buffer outer-buffer
471 (sit-for (or jit-lock-stealth-time 30))))))))))))))
465 472
466 473
467 474
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 093969d5725..8dfb6a792df 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -184,6 +184,8 @@ A large number or nil slows down menu responsiveness."
184 :help "Insert another file into current buffer")) 184 :help "Insert another file into current buffer"))
185(define-key menu-bar-file-menu [dired] 185(define-key menu-bar-file-menu [dired]
186 '(menu-item "Open Directory..." dired 186 '(menu-item "Open Directory..." dired
187 :enable (not (window-minibuffer-p
188 (frame-selected-window menu-updating-frame)))
187 :help "Read a directory, operate on its files")) 189 :help "Read a directory, operate on its files"))
188(define-key menu-bar-file-menu [open-file] 190(define-key menu-bar-file-menu [open-file]
189 '(menu-item "Open File..." find-file-existing 191 '(menu-item "Open File..." find-file-existing
diff --git a/lisp/novice.el b/lisp/novice.el
index de92857980b..3e63f0a7bc6 100644
--- a/lisp/novice.el
+++ b/lisp/novice.el
@@ -49,7 +49,7 @@ If nil, the feature is disabled, i.e., all commands work normally.")
49(defun disabled-command-function (&rest ignore) 49(defun disabled-command-function (&rest ignore)
50 (let (char) 50 (let (char)
51 (save-window-excursion 51 (save-window-excursion
52 (with-output-to-temp-buffer "*Help*" 52 (with-output-to-temp-buffer "*Disabled Command*"
53 (let ((keys (this-command-keys))) 53 (let ((keys (this-command-keys)))
54 (if (or (eq (aref keys 0) 54 (if (or (eq (aref keys 0)
55 (if (stringp keys) 55 (if (stringp keys)
@@ -68,7 +68,7 @@ If nil, the feature is disabled, i.e., all commands work normally.")
68 (princ "It is disabled because new users often find it confusing.\n") 68 (princ "It is disabled because new users often find it confusing.\n")
69 (princ "Here's the first part of its description:\n\n") 69 (princ "Here's the first part of its description:\n\n")
70 ;; Keep only the first paragraph of the documentation. 70 ;; Keep only the first paragraph of the documentation.
71 (with-current-buffer "*Help*" 71 (with-current-buffer "*Disabled Command*"
72 (goto-char (point-max)) 72 (goto-char (point-max))
73 (let ((start (point))) 73 (let ((start (point)))
74 (save-excursion 74 (save-excursion
@@ -91,10 +91,15 @@ SPC to try the command just this once, but leave it disabled.
91 (help-mode))) 91 (help-mode)))
92 (message "Type y, n, ! or SPC (the space bar): ") 92 (message "Type y, n, ! or SPC (the space bar): ")
93 (let ((cursor-in-echo-area t)) 93 (let ((cursor-in-echo-area t))
94 (while (not (memq (setq char (downcase (read-char))) 94 (while (progn (setq char (read-event))
95 '(?! ?y ?n ?\ ))) 95 (or (not (numberp char))
96 (not (memq (downcase char)
97 '(?! ?y ?n ?\ ?\C-g)))))
96 (ding) 98 (ding)
97 (message "Please type y, n, ! or SPC (the space bar): ")))) 99 (message "Please type y, n, ! or SPC (the space bar): "))))
100 (setq char (downcase char))
101 (if (= char ?\C-g)
102 (setq quit-flag t))
98 (if (= char ?!) 103 (if (= char ?!)
99 (setq disabled-command-function nil)) 104 (setq disabled-command-function nil))
100 (if (= char ?y) 105 (if (= char ?y)
diff --git a/lisp/simple.el b/lisp/simple.el
index 0b40d53b756..50a727aa15f 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -2917,6 +2917,14 @@ START and END specify the portion of the current buffer to be copied."
2917(put 'mark-inactive 'error-conditions '(mark-inactive error)) 2917(put 'mark-inactive 'error-conditions '(mark-inactive error))
2918(put 'mark-inactive 'error-message "The mark is not active now") 2918(put 'mark-inactive 'error-message "The mark is not active now")
2919 2919
2920(defvar activate-mark-hook nil
2921 "Hook run when the mark becomes active.
2922It is also run at the end of a command, if the mark is active and
2923it is possible that the region may have changed")
2924
2925(defvar deactivate-mark-hook nil
2926 "Hook run when the mark becomes inactive.")
2927
2920(defun mark (&optional force) 2928(defun mark (&optional force)
2921 "Return this buffer's mark value as integer; error if mark inactive. 2929 "Return this buffer's mark value as integer; error if mark inactive.
2922If optional argument FORCE is non-nil, access the mark value 2930If optional argument FORCE is non-nil, access the mark value
@@ -3008,6 +3016,7 @@ Display `Mark set' unless the optional second arg NOMSG is non-nil."
3008 (if (or arg (null mark) (/= mark (point))) 3016 (if (or arg (null mark) (/= mark (point)))
3009 (push-mark nil nomsg t) 3017 (push-mark nil nomsg t)
3010 (setq mark-active t) 3018 (setq mark-active t)
3019 (run-hooks 'activate-mark-hook)
3011 (unless nomsg 3020 (unless nomsg
3012 (message "Mark activated"))))) 3021 (message "Mark activated")))))
3013 3022
@@ -5029,7 +5038,17 @@ the front of the list of recently selected ones."
5029 5038
5030;;; Handling of Backspace and Delete keys. 5039;;; Handling of Backspace and Delete keys.
5031 5040
5032(defcustom normal-erase-is-backspace nil 5041(defcustom normal-erase-is-backspace
5042 (and (not noninteractive)
5043 (or (memq system-type '(ms-dos windows-nt))
5044 (and (memq initial-window-system '(x))
5045 (fboundp 'x-backspace-delete-keys-p)
5046 (x-backspace-delete-keys-p))
5047 ;; If the terminal Emacs is running on has erase char
5048 ;; set to ^H, use the Backspace key for deleting
5049 ;; backward and, and the Delete key for deleting forward.
5050 (and (null initial-window-system)
5051 (eq tty-erase-char ?\^H))))
5033 "If non-nil, Delete key deletes forward and Backspace key deletes backward. 5052 "If non-nil, Delete key deletes forward and Backspace key deletes backward.
5034 5053
5035On window systems, the default value of this option is chosen 5054On window systems, the default value of this option is chosen
diff --git a/lisp/startup.el b/lisp/startup.el
index b16cfdeb0c9..d0eca538f96 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1,7 +1,7 @@
1;;; startup.el --- process Emacs shell arguments 1;;; startup.el --- process Emacs shell arguments
2 2
3;; Copyright (C) 1985, 86, 92, 94, 95, 96, 97, 98, 99, 2000, 01, 02, 2004 3;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
4;; Free Software Foundation, Inc. 4;; 2001, 2002, 2004, 2005 Free Software Foundation, Inc.
5 5
6;; Maintainer: FSF 6;; Maintainer: FSF
7;; Keywords: internal 7;; Keywords: internal
@@ -568,22 +568,9 @@ opening the first frame (e.g. open a connection to the server).")
568 (setq command-line-default-directory default-directory) 568 (setq command-line-default-directory default-directory)
569 569
570 ;; Choose a reasonable location for temporary files. 570 ;; Choose a reasonable location for temporary files.
571 (setq temporary-file-directory 571 (custom-reevaluate-setting 'temporary-file-directory)
572 (file-name-as-directory 572 (custom-reevaluate-setting 'small-emporary-file-directory)
573 (cond ((memq system-type '(ms-dos windows-nt)) 573 (custom-reevaluate-setting 'auto-save-file-name-transforms)
574 (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp"))
575 ((memq system-type '(vax-vms axp-vms))
576 (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "SYS$SCRATCH:"))
577 (t
578 (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp")))))
579 (setq small-temporary-file-directory
580 (if (eq system-type 'ms-dos)
581 (getenv "TMPDIR")))
582 (setq auto-save-file-name-transforms
583 (list (list (car (car auto-save-file-name-transforms))
584 ;; Don't put "\\2" inside expand-file-name, since
585 ;; it will be transformed to "/2" on DOS/Windows.
586 (concat temporary-file-directory "\\2") t)))
587 574
588 ;; See if we should import version-control from the environment variable. 575 ;; See if we should import version-control from the environment variable.
589 (let ((vc (getenv "VERSION_CONTROL"))) 576 (let ((vc (getenv "VERSION_CONTROL")))
@@ -749,35 +736,14 @@ opening the first frame (e.g. open a connection to the server).")
749 (tool-bar-mode 1)) 736 (tool-bar-mode 1))
750 737
751 ;; Can't do this init in defcustom because the relevant variables 738 ;; Can't do this init in defcustom because the relevant variables
752 ;; are not set. If you make any changes to the `or' form below, 739 ;; are not set.
753 ;; you should also change the corresponding expression in the 740 (custom-reevaluate-setting 'blink-cursor-mode)
754 ;; defcustom in frame.el, or Custom will be badly confused. 741 (custom-reevaluate-setting 'normal-erase-is-backspace)
755 (unless (or noninteractive
756 no-blinking-cursor
757 (eq system-type 'ms-dos)
758 (not (memq initial-window-system '(x w32))))
759 (blink-cursor-mode 1))
760
761 (unless noninteractive
762 ;; DOS/Windows systems have a PC-type keyboard which has both
763 ;; <delete> and <backspace> keys.
764 (when (or (memq system-type '(ms-dos windows-nt))
765 (and (memq initial-window-system '(x))
766 (fboundp 'x-backspace-delete-keys-p)
767 (x-backspace-delete-keys-p))
768 ;; If the terminal Emacs is running on has erase char
769 ;; set to ^H, use the Backspace key for deleting
770 ;; backward and, and the Delete key for deleting forward.
771 (and (null initial-window-system)
772 (eq tty-erase-char 8)))
773 (setq-default normal-erase-is-backspace t)
774 (normal-erase-is-backspace-mode 1)))
775 742
776 (unless (or noninteractive 743 (unless (or noninteractive
777 emacs-quick-startup 744 emacs-quick-startup
778 (not (display-graphic-p)) 745 (not (display-graphic-p))
779 (not (fboundp 'x-show-tip))) 746 (not (fboundp 'x-show-tip)))
780 (setq-default tooltip-mode t)
781 (tooltip-mode 1)) 747 (tooltip-mode 1))
782 748
783 ;; Register default TTY colors for the case the terminal hasn't a 749 ;; Register default TTY colors for the case the terminal hasn't a
@@ -1757,5 +1723,5 @@ normal otherwise."
1757 (setq file (replace-match "/" t t file))) 1723 (setq file (replace-match "/" t t file)))
1758 file)) 1724 file))
1759 1725
1760;;; arch-tag: 7e294698-244d-4758-984b-4047f887a5db 1726;; arch-tag: 7e294698-244d-4758-984b-4047f887a5db
1761;;; startup.el ends here 1727;;; startup.el ends here
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index c224a970e01..7020426b9a8 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -1329,7 +1329,7 @@ Word syntax described by `ispell-dictionary-alist' (which see)."
1329 nil 1329 nil
1330 buffer 1330 buffer
1331 nil 1331 nil
1332 "-l" 1332 (if ispell-really-aspell "list" "-l")
1333 (let (args) 1333 (let (args)
1334 ;; Local dictionary becomes the global dictionary in use. 1334 ;; Local dictionary becomes the global dictionary in use.
1335 (if ispell-local-dictionary 1335 (if ispell-local-dictionary
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 105fbec9a7d..a9dd276796a 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,52 @@
12005-03-06 Richard M. Stallman <rms@gnu.org>
2
3 * windows.texi (Vertical Scrolling): Get rid of "Emacs 21".
4 (Resizing Windows): Likewise.
5
6 * text.texi (Change Hooks): Get rid of "Emacs 21".
7
8 * strings.texi (Formatting Strings): Get rid of "Emacs 21".
9
10 * streams.texi (Output Variables): Get rid of "Emacs 21".
11
12 * searching.texi (Regexp Special, Char Classes): Get rid of "Emacs 21".
13
14 * os.texi (Translating Input): Replace flow-control example
15 with a less obsolete example that uses `keyboard-translate'.
16
17 * objects.texi (Hash Table Type, Circular Objects):
18 Get rid of "Emacs 21".
19
20 * modes.texi (Mode Line Format): Get rid of "Emacs 21".
21 (Mode Line Data, Properties in Mode, Header Lines): Likewise.
22
23 * minibuf.texi (Minibuffer Misc): Get rid of "Emacs 21".
24
25 * lists.texi (List Elements, Building Lists): Get rid of "Emacs 21".
26
27 * keymaps.texi (Menu Separators, Tool Bar): Get rid of "Emacs 21".
28 (Menu Bar): Fix when menu-bar-update-hook is called.
29
30 * hash.texi (Hash Tables): Get rid of "Emacs 21".
31
32 * frames.texi (Text Terminal Colors): Get rid of "Emacs 21",
33 and make it read better.
34
35 * files.texi (Writing to Files): Get rid of "Emacs 21".
36 (Unique File Names): Likewise.
37
38 * elisp.texi: Update Emacs version to 22.
39
40 * display.texi (Forcing Redisplay): Get rid of "Emacs 21".
41 (Overlay Properties, Face Attributes): Likewise.
42 (Managing Overlays): Fix punctuation.
43 (Attribute Functions): Clarify set-face-font; get rid of
44 info about old Emacs versions.
45 (Auto Faces, Font Lookup, Display Property, Images):
46 Get rid of "Emacs 21".
47
48 * calendar.texi (Calendar Customizing): Get rid of "Emacs 21".
49
12005-03-05 Richard M. Stallman <rms@gnu.org> 502005-03-05 Richard M. Stallman <rms@gnu.org>
2 51
3 * debugging.texi (Error Debugging): Remove stack-trace-on-error. 52 * debugging.texi (Error Debugging): Remove stack-trace-on-error.
diff --git a/lispref/calendar.texi b/lispref/calendar.texi
index f132ea8868b..8c5ca54221c 100644
--- a/lispref/calendar.texi
+++ b/lispref/calendar.texi
@@ -115,8 +115,8 @@ the default for this variable.
115the current date is @emph{not} visible in the window. 115the current date is @emph{not} visible in the window.
116 116
117@vindex calendar-move-hook 117@vindex calendar-move-hook
118 Starting in Emacs 21, each of the calendar cursor motion commands 118 Each of the calendar cursor motion commands runs the hook
119runs the hook @code{calendar-move-hook} after it moves the cursor. 119@code{calendar-move-hook} after it moves the cursor.
120 120
121@node Holiday Customizing 121@node Holiday Customizing
122@section Customizing the Holidays 122@section Customizing the Holidays
diff --git a/lispref/display.texi b/lispref/display.texi
index e873b112fa2..de2ab26cf96 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -102,8 +102,7 @@ binding @code{redisplay-dont-pause} to a non-@code{nil} value.
102@defvar redisplay-dont-pause 102@defvar redisplay-dont-pause
103If this variable is non-@code{nil}, pending input does not 103If this variable is non-@code{nil}, pending input does not
104prevent or halt redisplay; redisplay occurs, and finishes, 104prevent or halt redisplay; redisplay occurs, and finishes,
105regardless of whether input is available. This feature is available 105regardless of whether input is available.
106as of Emacs 21.
107@end defvar 106@end defvar
108 107
109 You can request a display update, but only if no input is pending, 108 You can request a display update, but only if no input is pending,
@@ -1180,12 +1179,12 @@ then each element can be any of these possibilities:
1180A face name (a symbol or string). 1179A face name (a symbol or string).
1181 1180
1182@item 1181@item
1183Starting in Emacs 21, a property list of face attributes. This has the 1182A property list of face attributes. This has the form (@var{keyword}
1184form (@var{keyword} @var{value} @dots{}), where each @var{keyword} is a 1183@var{value} @dots{}), where each @var{keyword} is a face attribute
1185face attribute name and @var{value} is a meaningful value for that 1184name and @var{value} is a meaningful value for that attribute. With
1186attribute. With this feature, you do not need to create a face each 1185this feature, you do not need to create a face each time you want to
1187time you want to specify a particular attribute for certain text. 1186specify a particular attribute for certain text. @xref{Face
1188@xref{Face Attributes}. 1187Attributes}.
1189 1188
1190@item 1189@item
1191A cons cell of the form @code{(foreground-color . @var{color-name})} or 1190A cons cell of the form @code{(foreground-color . @var{color-name})} or
@@ -1340,7 +1339,7 @@ as an integer.
1340 1339
1341@defun overlay-buffer overlay 1340@defun overlay-buffer overlay
1342This function returns the buffer that @var{overlay} belongs to. It 1341This function returns the buffer that @var{overlay} belongs to. It
1343returns @code{nil}, if @var{overlay} has been deleted. 1342returns @code{nil} if @var{overlay} has been deleted.
1344@end defun 1343@end defun
1345 1344
1346@defun delete-overlay overlay 1345@defun delete-overlay overlay
@@ -1909,11 +1908,11 @@ mean. Note that in general, more than one face can be specified for a
1909given piece of text; when that happens, the attributes of all the faces 1908given piece of text; when that happens, the attributes of all the faces
1910are merged to specify how to display the text. @xref{Displaying Faces}. 1909are merged to specify how to display the text. @xref{Displaying Faces}.
1911 1910
1912 In Emacs 21, any attribute in a face can have the value 1911 Any attribute in a face can have the value @code{unspecified}. This
1913@code{unspecified}. This means the face doesn't specify that attribute. 1912means the face doesn't specify that attribute. In face merging, when
1914In face merging, when the first face fails to specify a particular 1913the first face fails to specify a particular attribute, that means the
1915attribute, that means the next face gets a chance. However, the 1914next face gets a chance. However, the @code{default} face must
1916@code{default} face must specify all attributes. 1915specify all attributes.
1917 1916
1918 Some of these font attributes are meaningful only on certain kinds of 1917 Some of these font attributes are meaningful only on certain kinds of
1919displays---if your display cannot handle a certain attribute, the 1918displays---if your display cannot handle a certain attribute, the
@@ -2043,11 +2042,10 @@ that is being pressed. If it is @code{nil} or omitted, a plain 2D box
2043is used. 2042is used.
2044@end table 2043@end table
2045 2044
2046 The attributes @code{:overline}, @code{:strike-through} and 2045 In older versions of Emacs, before @code{:family}, @code{:height},
2047@code{:box} are new in Emacs 21. The attributes @code{:family}, 2046@code{:width}, @code{:weight}, and @code{:slant} existed, these
2048@code{:height}, @code{:width}, @code{:weight}, @code{:slant} are also 2047attributes were used to specify the type face. They are now
2049new; previous versions used the following attributes, now semi-obsolete, 2048semi-obsolete, but they still work:
2050to specify some of the same information:
2051 2049
2052@table @code 2050@table @code
2053@item :font 2051@item :font
@@ -2060,8 +2058,8 @@ A non-@code{nil} value specifies a bold font.
2060A non-@code{nil} value specifies an italic font. 2058A non-@code{nil} value specifies an italic font.
2061@end table 2059@end table
2062 2060
2063 For compatibility, you can still set these ``attributes'' in Emacs 21, 2061 For compatibility, you can still set these ``attributes'', even
2064even though they are not real face attributes. Here is what that does: 2062though they are not real face attributes. Here is what that does:
2065 2063
2066@table @code 2064@table @code
2067@item :font 2065@item :font
@@ -2195,31 +2193,22 @@ they are used automatically to handle certain shades of gray.
2195@end defun 2193@end defun
2196 2194
2197@defun set-face-font face font &optional frame 2195@defun set-face-font face font &optional frame
2198This function sets the font of face @var{face}. 2196This function sets the font of face @var{face}. This actually sets
2199 2197the attributes @code{:family}, @code{:width}, @code{:height},
2200In Emacs 21, this actually sets the attributes @code{:family}, 2198@code{:weight}, and @code{:slant} according to the font name
2201@code{:width}, @code{:height}, @code{:weight}, and @code{:slant} 2199@var{font}.
2202according to the font name @var{font}.
2203
2204In Emacs 20, this sets the font attribute. Once you set the font
2205explicitly, the bold and italic attributes cease to have any effect,
2206because the precise font that you specified is used.
2207@end defun 2200@end defun
2208 2201
2209@defun set-face-bold-p face bold-p &optional frame 2202@defun set-face-bold-p face bold-p &optional frame
2210This function specifies whether @var{face} should be bold. If 2203This function specifies whether @var{face} should be bold. If
2211@var{bold-p} is non-@code{nil}, that means yes; @code{nil} means no. 2204@var{bold-p} is non-@code{nil}, that means yes; @code{nil} means no.
2212 2205This actually sets the @code{:weight} attribute.
2213In Emacs 21, this sets the @code{:weight} attribute.
2214In Emacs 20, it sets the @code{:bold} attribute.
2215@end defun 2206@end defun
2216 2207
2217@defun set-face-italic-p face italic-p &optional frame 2208@defun set-face-italic-p face italic-p &optional frame
2218This function specifies whether @var{face} should be italic. If 2209This function specifies whether @var{face} should be italic. If
2219@var{italic-p} is non-@code{nil}, that means yes; @code{nil} means no. 2210@var{italic-p} is non-@code{nil}, that means yes; @code{nil} means no.
2220 2211This actually sets the @code{:slant} attribute.
2221In Emacs 21, this sets the @code{:slant} attribute.
2222In Emacs 20, it sets the @code{:italic} attribute.
2223@end defun 2212@end defun
2224 2213
2225@defun set-face-underline-p face underline-p &optional frame 2214@defun set-face-underline-p face underline-p &optional frame
@@ -2519,9 +2508,8 @@ differently from the default face.
2519@cindex faces, automatic choice 2508@cindex faces, automatic choice
2520 2509
2521@cindex Font-Lock mode 2510@cindex Font-Lock mode
2522 Starting with Emacs 21, a hook is available for automatically 2511 This hook is used for automatically assigning faces to text in the
2523assigning faces to text in the buffer. This hook is used for part of 2512buffer. It is part of the implementation of Font-Lock mode.
2524the implementation of Font-Lock mode.
2525 2513
2526@tindex fontification-functions 2514@tindex fontification-functions
2527@defvar fontification-functions 2515@defvar fontification-functions
@@ -2572,8 +2560,6 @@ for @var{maximum} can make this function much faster, in cases where
2572many fonts match the pattern. 2560many fonts match the pattern.
2573@end defun 2561@end defun
2574 2562
2575 These additional functions are available starting in Emacs 21.
2576
2577@defun x-family-fonts &optional family frame 2563@defun x-family-fonts &optional family frame
2578@tindex x-family-fonts 2564@tindex x-family-fonts
2579This function returns a list describing the available fonts for family 2565This function returns a list describing the available fonts for family
@@ -3031,11 +3017,10 @@ buffer. The default is to use the @code{arrow} (non-text) pointer.
3031 3017
3032 The @code{display} text property (or overlay property) is used to 3018 The @code{display} text property (or overlay property) is used to
3033insert images into text, and also control other aspects of how text 3019insert images into text, and also control other aspects of how text
3034displays. These features are available starting in Emacs 21. The value 3020displays. The value of the @code{display} property should be a
3035of the @code{display} property should be a display specification, or a 3021display specification, or a list or vector containing several display
3036list or vector containing several display specifications. The rest of 3022specifications. The rest of this section describes several kinds of
3037this section describes several kinds of display specifications and what 3023display specifications and what they mean.
3038they mean.
3039 3024
3040@menu 3025@menu
3041* Specified Space:: Displaying one space with a specified width. 3026* Specified Space:: Displaying one space with a specified width.
@@ -3344,8 +3329,7 @@ string.
3344 3329
3345 To display an image in an Emacs buffer, you must first create an image 3330 To display an image in an Emacs buffer, you must first create an image
3346descriptor, then use it as a display specifier in the @code{display} 3331descriptor, then use it as a display specifier in the @code{display}
3347property of text that is displayed (@pxref{Display Property}). Like the 3332property of text that is displayed (@pxref{Display Property}).
3348@code{display} property, this feature is available starting in Emacs 21.
3349 3333
3350 Emacs can display a number of different image formats; some of them 3334 Emacs can display a number of different image formats; some of them
3351are supported only if particular support libraries are installed on 3335are supported only if particular support libraries are installed on
diff --git a/lispref/elisp.texi b/lispref/elisp.texi
index 19b87e765db..b2cec876d79 100644
--- a/lispref/elisp.texi
+++ b/lispref/elisp.texi
@@ -26,7 +26,7 @@
26 26
27@ifnottex 27@ifnottex
28This Info file contains edition @value{VERSION} of the GNU Emacs Lisp 28This Info file contains edition @value{VERSION} of the GNU Emacs Lisp
29Reference Manual, corresponding to Emacs version 21.3. 29Reference Manual, corresponding to Emacs version 22.1.
30@c Please REMEMBER to update edition number in *four* places in this file 30@c Please REMEMBER to update edition number in *four* places in this file
31@c and also in *one* place in intro.texi and *one* in README. 31@c and also in *one* place in intro.texi and *one* in README.
32 32
@@ -52,7 +52,7 @@ Software Foundation raise funds for GNU development.''
52 52
53@titlepage 53@titlepage
54@title GNU Emacs Lisp Reference Manual 54@title GNU Emacs Lisp Reference Manual
55@subtitle For Emacs Version 21 55@subtitle For Emacs Version 22
56@c The edition number appears in several places in this file 56@c The edition number appears in several places in this file
57@c and also in the file intro.texi. 57@c and also in the file intro.texi.
58@subtitle Revision @value{VERSION}, January 2002 58@subtitle Revision @value{VERSION}, January 2002
@@ -66,7 +66,7 @@ Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,@*
66 66
67@sp 2 67@sp 2
68Edition @value{VERSION} @* 68Edition @value{VERSION} @*
69Revised for Emacs Version 21.3,@* 69Revised for Emacs Version 22.1,@*
70January 2002.@* 70January 2002.@*
71@sp 2 71@sp 2
72ISBN 1-882114-73-6 72ISBN 1-882114-73-6
@@ -96,7 +96,7 @@ Cover art by Etienne Suvasa.
96 96
97@ifnottex 97@ifnottex
98This Info file contains edition @value{VERSION} of the GNU Emacs Lisp 98This Info file contains edition @value{VERSION} of the GNU Emacs Lisp
99Reference Manual, corresponding to GNU Emacs version 21.3. 99Reference Manual, corresponding to GNU Emacs version 22.1.
100@end ifnottex 100@end ifnottex
101 101
102@menu 102@menu
@@ -173,7 +173,7 @@ Appendices
173* Index:: Index including concepts, functions, variables, 173* Index:: Index including concepts, functions, variables,
174 and other terms. 174 and other terms.
175 175
176* New Symbols:: New functions and variables in Emacs 21. 176* New Symbols:: New functions and variables in Emacs 22.
177 177
178 --- The Detailed Node Listing --- 178 --- The Detailed Node Listing ---
179 179
diff --git a/lispref/files.texi b/lispref/files.texi
index aa97ff83d30..18a98a406c4 100644
--- a/lispref/files.texi
+++ b/lispref/files.texi
@@ -578,16 +578,15 @@ that string, rather than text from the buffer. @var{end} is ignored in
578this case. 578this case.
579 579
580If @var{append} is non-@code{nil}, then the specified text is appended 580If @var{append} is non-@code{nil}, then the specified text is appended
581to the existing file contents (if any). Starting in Emacs 21, if 581to the existing file contents (if any). If @var{append} is an
582@var{append} is an integer, then @code{write-region} seeks to that byte 582integer, @code{write-region} seeks to that byte offset from the start
583offset from the start of the file and writes the data from there. 583of the file and writes the data from there.
584 584
585If @var{mustbenew} is non-@code{nil}, then @code{write-region} asks 585If @var{mustbenew} is non-@code{nil}, then @code{write-region} asks
586for confirmation if @var{filename} names an existing file. 586for confirmation if @var{filename} names an existing file. If
587Starting in Emacs 21, if @var{mustbenew} is the symbol @code{excl}, 587@var{mustbenew} is the symbol @code{excl}, then @code{write-region}
588then @code{write-region} does not ask for confirmation, but instead 588does not ask for confirmation, but instead it signals an error
589it signals an error @code{file-already-exists} if the file already 589@code{file-already-exists} if the file already exists.
590exists.
591 590
592The test for an existing file, when @var{mustbenew} is @code{excl}, uses 591The test for an existing file, when @var{mustbenew} is @code{excl}, uses
593a special system feature. At least for files on a local disk, there is 592a special system feature. At least for files on a local disk, there is
@@ -2013,7 +2012,7 @@ on VMS except discard superfluous initial components as shown above.
2013@subsection Generating Unique File Names 2012@subsection Generating Unique File Names
2014 2013
2015 Some programs need to write temporary files. Here is the usual way to 2014 Some programs need to write temporary files. Here is the usual way to
2016construct a name for such a file, starting in Emacs 21: 2015construct a name for such a file:
2017 2016
2018@example 2017@example
2019(make-temp-file @var{name-of-application}) 2018(make-temp-file @var{name-of-application})
@@ -2106,7 +2105,7 @@ non-@code{nil}.
2106 2105
2107@tindex small-temporary-file-directory 2106@tindex small-temporary-file-directory
2108@defvar small-temporary-file-directory 2107@defvar small-temporary-file-directory
2109This variable (new in Emacs 21) specifies the directory name for 2108This variable specifies the directory name for
2110creating certain temporary files, which are likely to be small. 2109creating certain temporary files, which are likely to be small.
2111 2110
2112If you want to write a temporary file which is likely to be small, you 2111If you want to write a temporary file which is likely to be small, you
diff --git a/lispref/frames.texi b/lispref/frames.texi
index f50be70f473..712f05df597 100644
--- a/lispref/frames.texi
+++ b/lispref/frames.texi
@@ -1700,13 +1700,12 @@ and that name is still supported as an alias.
1700@section Text Terminal Colors 1700@section Text Terminal Colors
1701@cindex colors on text-only terminals 1701@cindex colors on text-only terminals
1702 1702
1703 Emacs can display color on text-only terminals, starting with version 1703 Text-only terminals usually support only a small number of colors,
170421. These terminals usually support only a small number of colors, and 1704and the computer uses small integers to select colors on the terminal.
1705the computer uses small integers to select colors on the terminal. This 1705This means that the computer cannot reliably tell what the selected
1706means that the computer cannot reliably tell what the selected color 1706color looks like; instead, you have to inform your application which
1707looks like; instead, you have to inform your application which small 1707small integers correspond to which colors. However, Emacs does know
1708integers correspond to which colors. However, Emacs does know the 1708the standard set of colors and will try to use them automatically.
1709standard set of colors and will try to use them automatically.
1710 1709
1711 The functions described in this section control how terminal colors 1710 The functions described in this section control how terminal colors
1712are used by Emacs. 1711are used by Emacs.
diff --git a/lispref/hash.texi b/lispref/hash.texi
index 9343196a238..b8ddd0ee6a4 100644
--- a/lispref/hash.texi
+++ b/lispref/hash.texi
@@ -27,9 +27,9 @@ There is no way to share structure between two hash tables,
27the way two alists can share a common tail. 27the way two alists can share a common tail.
28@end itemize 28@end itemize
29 29
30 Emacs Lisp (starting with Emacs 21) provides a general-purpose hash 30 Emacs Lisp provides a general-purpose hash table data type, along
31table data type, along with a series of functions for operating on them. 31with a series of functions for operating on them. Hash tables have no
32Hash tables have no read syntax, and print in hash notation, like this: 32read syntax, and print in hash notation, like this:
33 33
34@example 34@example
35(make-hash-table) 35(make-hash-table)
diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi
index 9cf73053291..f374472e101 100644
--- a/lispref/keymaps.texi
+++ b/lispref/keymaps.texi
@@ -1930,8 +1930,8 @@ where @var{separator-type} is a string starting with two or more dashes.
1930That specifies the default kind of separator. (For compatibility, 1930That specifies the default kind of separator. (For compatibility,
1931@code{""} and @code{-} also count as separators.) 1931@code{""} and @code{-} also count as separators.)
1932 1932
1933 Starting in Emacs 21, certain other values of @var{separator-type} 1933 Certain other values of @var{separator-type} specify a different
1934specify a different style of separator. Here is a table of them: 1934style of separator. Here is a table of them:
1935 1935
1936@table @code 1936@table @code
1937@item "--no-line" 1937@item "--no-line"
@@ -2247,9 +2247,11 @@ at the end of the menu bar, following local menu items.
2247@end defvar 2247@end defvar
2248 2248
2249@defvar menu-bar-update-hook 2249@defvar menu-bar-update-hook
2250This normal hook is run whenever the user clicks on the menu bar, before 2250This normal hook is run by redisplay to update the menu bar contents,
2251displaying a submenu. You can use it to update submenus whose contents 2251before redisplaying the menu bar. You can use it to update submenus
2252should vary. 2252whose contents should vary. Since this hook is run frequently, we
2253advise you to ensure that the functions it calls do not take much time
2254in the usual case.
2253@end defvar 2255@end defvar
2254 2256
2255@node Tool Bar 2257@node Tool Bar
@@ -2258,7 +2260,7 @@ should vary.
2258 2260
2259 A @dfn{tool bar} is a row of icons at the top of a frame, that execute 2261 A @dfn{tool bar} is a row of icons at the top of a frame, that execute
2260commands when you click on them---in effect, a kind of graphical menu 2262commands when you click on them---in effect, a kind of graphical menu
2261bar. Emacs supports tool bars starting with version 21. 2263bar.
2262 2264
2263 The frame parameter @code{tool-bar-lines} (X resource @samp{toolBar}) 2265 The frame parameter @code{tool-bar-lines} (X resource @samp{toolBar})
2264controls how many lines' worth of height to reserve for the tool bar. A 2266controls how many lines' worth of height to reserve for the tool bar. A
diff --git a/lispref/lists.texi b/lispref/lists.texi
index dbcddd741b3..47ea5b7d541 100644
--- a/lispref/lists.texi
+++ b/lispref/lists.texi
@@ -248,7 +248,7 @@ This is in contrast to @code{cdr}, which signals an error if
248@tindex pop 248@tindex pop
249@defmac pop listname 249@defmac pop listname
250This macro is a way of examining the @sc{car} of a list, 250This macro is a way of examining the @sc{car} of a list,
251and taking it off the list, all at once. It is new in Emacs 21. 251and taking it off the list, all at once.
252 252
253It operates on the list which is stored in the symbol @var{listname}. 253It operates on the list which is stored in the symbol @var{listname}.
254It removes this element from the list by setting @var{listname} 254It removes this element from the list by setting @var{listname}
@@ -436,7 +436,6 @@ any symbol can serve both purposes.
436@defmac push newelt listname 436@defmac push newelt listname
437This macro provides an alternative way to write 437This macro provides an alternative way to write
438@code{(setq @var{listname} (cons @var{newelt} @var{listname}))}. 438@code{(setq @var{listname} (cons @var{newelt} @var{listname}))}.
439It is new in Emacs 21.
440 439
441@example 440@example
442(setq l '(a b)) 441(setq l '(a b))
diff --git a/lispref/minibuf.texi b/lispref/minibuf.texi
index eb60d99fa62..288bacc5e93 100644
--- a/lispref/minibuf.texi
+++ b/lispref/minibuf.texi
@@ -1731,14 +1731,14 @@ minibuffer. If no minibuffer is active, it returns @code{nil}.
1731 1731
1732@defun minibuffer-prompt-end 1732@defun minibuffer-prompt-end
1733@tindex minibuffer-prompt-end 1733@tindex minibuffer-prompt-end
1734This function, available starting in Emacs 21, returns the current 1734This function returns the current
1735position of the end of the minibuffer prompt, if a minibuffer is 1735position of the end of the minibuffer prompt, if a minibuffer is
1736current. Otherwise, it returns the minimum valid buffer position. 1736current. Otherwise, it returns the minimum valid buffer position.
1737@end defun 1737@end defun
1738 1738
1739@defun minibuffer-contents 1739@defun minibuffer-contents
1740@tindex minibuffer-contents 1740@tindex minibuffer-contents
1741This function, available starting in Emacs 21, returns the editable 1741This function returns the editable
1742contents of the minibuffer (that is, everything except the prompt) as 1742contents of the minibuffer (that is, everything except the prompt) as
1743a string, if a minibuffer is current. Otherwise, it returns the 1743a string, if a minibuffer is current. Otherwise, it returns the
1744entire contents of the current buffer. 1744entire contents of the current buffer.
@@ -1752,7 +1752,7 @@ properties, just the characters themselves. @xref{Text Properties}.
1752 1752
1753@defun delete-minibuffer-contents 1753@defun delete-minibuffer-contents
1754@tindex delete-minibuffer-contents 1754@tindex delete-minibuffer-contents
1755This function, available starting in Emacs 21, erases the editable 1755This function erases the editable
1756contents of the minibuffer (that is, everything except the prompt), if 1756contents of the minibuffer (that is, everything except the prompt), if
1757a minibuffer is current. Otherwise, it erases the entire buffer. 1757a minibuffer is current. Otherwise, it erases the entire buffer.
1758@end defun 1758@end defun
diff --git a/lispref/modes.texi b/lispref/modes.texi
index 530044ac037..f7510540d08 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -1220,7 +1220,7 @@ displayed in the window. The mode line contains information about the
1220buffer, such as its name, associated file, depth of recursive editing, 1220buffer, such as its name, associated file, depth of recursive editing,
1221and major and minor modes. A window can also have a @dfn{header 1221and major and minor modes. A window can also have a @dfn{header
1222line}, which is much like the mode line but appears at the top of the 1222line}, which is much like the mode line but appears at the top of the
1223window (starting in Emacs 21). 1223window.
1224 1224
1225 This section describes how to control the contents of the mode line 1225 This section describes how to control the contents of the mode line
1226and header line. We include it in this chapter because much of the 1226and header line. We include it in this chapter because much of the
@@ -1295,7 +1295,7 @@ controls which other variables are used to form the mode-line text, and
1295where they appear. 1295where they appear.
1296 1296
1297If you set this variable to @code{nil} in a buffer, that buffer does not 1297If you set this variable to @code{nil} in a buffer, that buffer does not
1298have a mode line. (This feature was added in Emacs 21.) 1298have a mode line.
1299@end defvar 1299@end defvar
1300 1300
1301 A mode-line construct may be as simple as a fixed string of text, but 1301 A mode-line construct may be as simple as a fixed string of text, but
@@ -1349,7 +1349,6 @@ common form of mode-line construct.
1349@item (:eval @var{form}) 1349@item (:eval @var{form})
1350A list whose first element is the symbol @code{:eval} says to evaluate 1350A list whose first element is the symbol @code{:eval} says to evaluate
1351@var{form}, and use the result as a string to display. 1351@var{form}, and use the result as a string to display.
1352(This feature is new as of Emacs 21.)
1353 1352
1354@item (:propertize @var{elt} @var{props}@dots{}) 1353@item (:propertize @var{elt} @var{props}@dots{})
1355A list whose first element is the symbol @code{:propertize} says to 1354A list whose first element is the symbol @code{:propertize} says to
@@ -1713,7 +1712,7 @@ The value of @code{global-mode-string}. Currently, only
1713@subsection Properties in the Mode Line 1712@subsection Properties in the Mode Line
1714@cindex text properties in the mode line 1713@cindex text properties in the mode line
1715 1714
1716 Starting in Emacs 21, certain text properties are meaningful in the 1715 Certain text properties are meaningful in the
1717mode line. The @code{face} property affects the appearance of text; the 1716mode line. The @code{face} property affects the appearance of text; the
1718@code{help-echo} property associate help strings with the text, and 1717@code{help-echo} property associate help strings with the text, and
1719@code{local-map} can make the text mouse-sensitive. 1718@code{local-map} can make the text mouse-sensitive.
@@ -1757,7 +1756,7 @@ local variables.
1757@cindex header line (of a window) 1756@cindex header line (of a window)
1758@cindex window header line 1757@cindex window header line
1759 1758
1760 Starting in Emacs 21, a window can have a @dfn{header line} at the 1759 A window can have a @dfn{header line} at the
1761top, just as it can have a mode line at the bottom. The header line 1760top, just as it can have a mode line at the bottom. The header line
1762feature works just like the mode-line feature, except that it's 1761feature works just like the mode-line feature, except that it's
1763controlled by different variables. 1762controlled by different variables.
diff --git a/lispref/objects.texi b/lispref/objects.texi
index f0bef593f29..93d7c51b08d 100644
--- a/lispref/objects.texi
+++ b/lispref/objects.texi
@@ -1166,7 +1166,7 @@ only the first 3 bits are used:
1166 1166
1167 A hash table is a very fast kind of lookup table, somewhat like an 1167 A hash table is a very fast kind of lookup table, somewhat like an
1168alist in that it maps keys to corresponding values, but much faster. 1168alist in that it maps keys to corresponding values, but much faster.
1169Hash tables are a new feature in Emacs 21; they have no read syntax, and 1169Hash tables have no read syntax, and
1170print using hash notation. @xref{Hash Tables}. 1170print using hash notation. @xref{Hash Tables}.
1171 1171
1172@example 1172@example
@@ -1549,9 +1549,9 @@ positions.
1549@cindex @samp{#@var{n}=} read syntax 1549@cindex @samp{#@var{n}=} read syntax
1550@cindex @samp{#@var{n}#} read syntax 1550@cindex @samp{#@var{n}#} read syntax
1551 1551
1552 In Emacs 21, to represent shared or circular structures within a 1552 To represent shared or circular structures within a complex of Lisp
1553complex of Lisp objects, you can use the reader constructs 1553objects, you can use the reader constructs @samp{#@var{n}=} and
1554@samp{#@var{n}=} and @samp{#@var{n}#}. 1554@samp{#@var{n}#}.
1555 1555
1556 Use @code{#@var{n}=} before an object to label it for later reference; 1556 Use @code{#@var{n}=} before an object to label it for later reference;
1557subsequently, you can use @code{#@var{n}#} to refer the same object in 1557subsequently, you can use @code{#@var{n}#} to refer the same object in
diff --git a/lispref/os.texi b/lispref/os.texi
index 58bab17e139..1358e3421db 100644
--- a/lispref/os.texi
+++ b/lispref/os.texi
@@ -1618,35 +1618,6 @@ If @code{keyboard-translate-table} is a char-table
1618looked up in this char-table. If the value found there is 1618looked up in this char-table. If the value found there is
1619non-@code{nil}, then it is used instead of the actual input character. 1619non-@code{nil}, then it is used instead of the actual input character.
1620 1620
1621In the example below, we set @code{keyboard-translate-table} to a
1622char-table. Then we fill it in to swap the characters @kbd{C-s} and
1623@kbd{C-\} and the characters @kbd{C-q} and @kbd{C-^}. Subsequently,
1624typing @kbd{C-\} has all the usual effects of typing @kbd{C-s}, and vice
1625versa.
1626
1627@cindex flow control example
1628@example
1629@group
1630(defun evade-flow-control ()
1631 "Replace C-s with C-\ and C-q with C-^."
1632 (interactive)
1633@end group
1634@group
1635 (setq keyboard-translate-table
1636 (make-char-table 'keyboard-translate-table nil))
1637@end group
1638@group
1639 ;; @r{Swap @kbd{C-s} and @kbd{C-\}.}
1640 (aset keyboard-translate-table ?\034 ?\^s)
1641 (aset keyboard-translate-table ?\^s ?\034)
1642@end group
1643@group
1644 ;; @r{Swap @kbd{C-q} and @kbd{C-^}.}
1645 (aset keyboard-translate-table ?\036 ?\^q)
1646 (aset keyboard-translate-table ?\^q ?\036))
1647@end group
1648@end example
1649
1650Note that this translation is the first thing that happens to a 1621Note that this translation is the first thing that happens to a
1651character after it is read from the terminal. Record-keeping features 1622character after it is read from the terminal. Record-keeping features
1652such as @code{recent-keys} and dribble files record the characters after 1623such as @code{recent-keys} and dribble files record the characters after
@@ -1664,6 +1635,26 @@ character code @var{from} into character code @var{to}. It creates
1664the keyboard translate table if necessary. 1635the keyboard translate table if necessary.
1665@end defun 1636@end defun
1666 1637
1638 Here's an example of using the @code{keyboard-translate-table} to
1639make @kbd{C-x}, @kbd{C-c} and @kbd{C-v} perform the cut, copy and paste
1640operations:
1641
1642@example
1643(keyboard-translate ?\C-x 'control-x)
1644(keyboard-translate ?\C-c 'control-c)
1645(keyboard-translate ?\C-v 'control-v)
1646(global-set-key [control-x] 'kill-region)
1647(global-set-key [control-c] 'kill-ring-save)
1648(global-set-key [control-v] 'yank)
1649@end example
1650
1651@noindent
1652On a graphical terminal that supports extended @acronym{ASCII} input,
1653you can still get the standard Emacs meanings of one of those
1654characters by typing it with the shift key. That makes it a different
1655character as far as keyboard translation is concerned, but it has the
1656same usual meaning.
1657
1667 The remaining translation features translate subsequences of key 1658 The remaining translation features translate subsequences of key
1668sequences being read. They are implemented in @code{read-key-sequence} 1659sequences being read. They are implemented in @code{read-key-sequence}
1669and have no effect on input read with @code{read-event}. 1660and have no effect on input read with @code{read-event}.
diff --git a/lispref/searching.texi b/lispref/searching.texi
index 23eab9fc928..8a4c46f1ba2 100644
--- a/lispref/searching.texi
+++ b/lispref/searching.texi
@@ -338,7 +338,7 @@ does match all non-@acronym{ASCII} characters (see below regarding @samp{^}),
338in both multibyte and unibyte representations, because only the 338in both multibyte and unibyte representations, because only the
339@acronym{ASCII} characters are excluded. 339@acronym{ASCII} characters are excluded.
340 340
341Starting in Emacs 21, a character alternative can also specify named 341A character alternative can also specify named
342character classes (@pxref{Char Classes}). This is a POSIX feature whose 342character classes (@pxref{Char Classes}). This is a POSIX feature whose
343syntax is @samp{[:@var{class}:]}. Using a character class is equivalent 343syntax is @samp{[:@var{class}:]}. Using a character class is equivalent
344to mentioning each of the characters in that class; but the latter is 344to mentioning each of the characters in that class; but the latter is
@@ -416,7 +416,7 @@ special character anyway, regardless of where it appears.@refill
416@cindex character classes in regexp 416@cindex character classes in regexp
417 417
418 Here is a table of the classes you can use in a character alternative, 418 Here is a table of the classes you can use in a character alternative,
419in Emacs 21, and what they mean: 419and what they mean:
420 420
421@table @samp 421@table @samp
422@item [:ascii:] 422@item [:ascii:]
diff --git a/lispref/streams.texi b/lispref/streams.texi
index 2f27fe193dc..f459c1c821a 100644
--- a/lispref/streams.texi
+++ b/lispref/streams.texi
@@ -790,7 +790,7 @@ Emacs-Lisp Expressions, emacs, The GNU Emacs Manual}).
790@end defopt 790@end defopt
791 791
792 These variables are used for detecting and reporting circular 792 These variables are used for detecting and reporting circular
793and shared structure---but they are only defined in Emacs 21. 793and shared structure:
794 794
795@tindex print-circle 795@tindex print-circle
796@defvar print-circle 796@defvar print-circle
diff --git a/lispref/strings.texi b/lispref/strings.texi
index cca19ffbe92..30802709311 100644
--- a/lispref/strings.texi
+++ b/lispref/strings.texi
@@ -691,8 +691,8 @@ in the copy with encodings of the corresponding @var{objects}. The
691arguments @var{objects} are the computed values to be formatted. 691arguments @var{objects} are the computed values to be formatted.
692 692
693The characters in @var{string}, other than the format specifications, 693The characters in @var{string}, other than the format specifications,
694are copied directly into the output; starting in Emacs 21, if they have 694are copied directly into the output; if they have text properties,
695text properties, these are copied into the output also. 695these are copied into the output also.
696@end defun 696@end defun
697 697
698@cindex @samp{%} in format 698@cindex @samp{%} in format
@@ -732,7 +732,7 @@ made without quoting (that is, using @code{princ}, not
732by their contents alone, with no @samp{"} characters, and symbols appear 732by their contents alone, with no @samp{"} characters, and symbols appear
733without @samp{\} characters. 733without @samp{\} characters.
734 734
735Starting in Emacs 21, if the object is a string, its text properties are 735If the object is a string, its text properties are
736copied into the output. The text properties of the @samp{%s} itself 736copied into the output. The text properties of the @samp{%s} itself
737are also copied, but those of the object take priority. 737are also copied, but those of the object take priority.
738 738
diff --git a/lispref/text.texi b/lispref/text.texi
index f60dd9282b8..cd63a756add 100644
--- a/lispref/text.texi
+++ b/lispref/text.texi
@@ -4225,8 +4225,6 @@ disabled; none of them run. This affects all the hook variables
4225described above in this section, as well as the hooks attached to 4225described above in this section, as well as the hooks attached to
4226certain special text properties (@pxref{Special Properties}) and overlay 4226certain special text properties (@pxref{Special Properties}) and overlay
4227properties (@pxref{Overlay Properties}). 4227properties (@pxref{Overlay Properties}).
4228
4229This variable is available starting in Emacs 21.
4230@end defvar 4228@end defvar
4231 4229
4232@ignore 4230@ignore
diff --git a/lispref/windows.texi b/lispref/windows.texi
index 671175a550d..042ede6ed4c 100644
--- a/lispref/windows.texi
+++ b/lispref/windows.texi
@@ -1583,7 +1583,7 @@ Replaces three keystroke sequence C-u 0 C-l."
1583 1583
1584 @dfn{Vertical fractional scrolling} means shifting the image in the 1584 @dfn{Vertical fractional scrolling} means shifting the image in the
1585window up or down by a specified multiple or fraction of a line. 1585window up or down by a specified multiple or fraction of a line.
1586Starting in Emacs 21, each window has a @dfn{vertical scroll position}, 1586Each window has a @dfn{vertical scroll position},
1587which is a number, never less than zero. It specifies how far to raise 1587which is a number, never less than zero. It specifies how far to raise
1588the contents of the window. Raising the window contents generally makes 1588the contents of the window. Raising the window contents generally makes
1589all or part of some lines disappear off the top, and all or part of some 1589all or part of some lines disappear off the top, and all or part of some
@@ -2053,7 +2053,6 @@ and @code{nil} otherwise.
2053If this variable is non-@code{nil}, in any given buffer, 2053If this variable is non-@code{nil}, in any given buffer,
2054then the size of any window displaying the buffer remains fixed 2054then the size of any window displaying the buffer remains fixed
2055unless you explicitly change it or Emacs has no other choice. 2055unless you explicitly change it or Emacs has no other choice.
2056(This feature is new in Emacs 21.)
2057 2056
2058If the value is @code{height}, then only the window's height is fixed; 2057If the value is @code{height}, then only the window's height is fixed;
2059if the value is @code{width}, then only the window's width is fixed. 2058if the value is @code{width}, then only the window's width is fixed.
diff --git a/man/ChangeLog b/man/ChangeLog
index 6e6b48ddd8d..e529e8dfb97 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,77 @@
12005-03-06 Richard M. Stallman <rms@gnu.org>
2
3 * building.texi (Starting GUD): Don't explain text vs graphical
4 GDB here. Just mention it and xref.
5 Delete "just one debugger process".
6 (Debugger Operation): Move GUD tooltip info here.
7 (GUD Tooltips): Node deleted.
8 (GDB Graphical Interface): Explain the two GDB modes here.
9
10 * woman.texi (Introduction): Minor cleanups.
11
12 * url.texi (HTTP language/coding): Get rid of "Emacs 21".
13
14 * sending.texi (Sending Mail): Minor cleanup.
15 (Mail Aliases): Explain quoting conventions.
16 Update key rebinding example.
17 (Header Editing): C-M-i is like M-TAB.
18 (Mail Mode Misc): mail-attach-file does not do MIME.
19
20 * rmail.texi (Rmail Inbox): Move text from Remote Mailboxes
21 that really belongs here.
22 (Remote Mailboxes): Text moved to Rmail Inbox.
23 (Rmail Display): Mention Mouse-1.
24 (Movemail): Clarify two movemail versions.
25 Clarify rmail-movemail-program.
26
27 * pcl-cvs.texi (About PCL-CVS): Get rid of "Emacs 21".
28 (Installation): Node deleted.
29
30 * misc.texi (Single Shell): Replace uudecode example with gpg example.
31 Document async shell commands.
32 (Shell History): Clarify.
33 (Shell Ring): Mention C-UP an C-DOWN.
34 (Shell Options): Add comint-prompt-read-only.
35 (Invoking emacsclient): Set EDITOR to run Emacs.
36 (Sorting): No need to explain what region is.
37 (Saving Emacs Sessions): Fix typo.
38 (Recursive Edit): Fix punctuation.
39 (Emulation): Don't mention "PC bindings" which are standard.
40 (Hyperlinking): Explain Mouse-1 convention here.
41 (Find Func): Node deleted.
42
43 * mh-e.texi (Preface): Get rid of "Emacs 21".
44
45 * help.texi (Name Help): Xref to Hyperlinking.
46
47 * glossary.texi (Glossary):
48 Rename "Balance Parentheses" to "Balancing...".
49 Add "Byte Compilation". Correct "Copyleft".
50 New xref in "Customization".
51 Clarify "Current Line", "Echoing", "Fringe", "Frame", "Speedbar".
52 Add "Graphical Terminal" "Keybinding", "Margin", "Window System".
53 Rename "Registers" to "Register".
54 Replace "Selecting" with "Selected Frame",
55 "Selected Window", and "Selecting a Buffer".
56
57 * files.texi (Types of Log File): Explain how projects'
58 methods can vary.
59
60 * eshell.texi (Installation): Delete node (for Emacs 20).
61
62 * display.texi (Faces): Delete "Emacs 21".
63
64 * custom.texi (Changing a Variable): C-M-i like M-TAB.
65 * fixit.texi (Spelling): C-M-i like M-TAB.
66 * mini.texi (Completion Options): C-M-i like M-TAB.
67 * programs.texi (Symbol Completion): C-M-i like M-TAB.
68 * text.texi (Text Mode): C-M-i like M-TAB.
69
70 * commands.texi (Keys): Mention F1 and F2 in list of prefixes.
71
72 * calendar.texi (Specified Dates): Mention `g w'.
73 (Appointments): appt-activate toggles with no arg.
74
12005-03-05 Thien-Thi Nguyen <ttn@gnu.org> 752005-03-05 Thien-Thi Nguyen <ttn@gnu.org>
2 76
3 * flymake.texi: Refill and tweak style in @lisp blocks. 77 * flymake.texi: Refill and tweak style in @lisp blocks.
@@ -32,6 +106,10 @@
32 Mention additional functions. 106 Mention additional functions.
33 (Algebraic Simplifications): Mention additional simplifications. 107 (Algebraic Simplifications): Mention additional simplifications.
34 108
1092005-02-27 Richard M. Stallman <rms@gnu.org>
110
111 * building.texi (Compilation): Update mode line status info.
112
352005-02-27 Matt Hodges <MPHodges@member.fsf.org> 1132005-02-27 Matt Hodges <MPHodges@member.fsf.org>
36 114
37 * calendar.texi (General Calendar): Document binding of 115 * calendar.texi (General Calendar): Document binding of
diff --git a/man/building.texi b/man/building.texi
index 10ac5142d61..0adb55e38e7 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -325,7 +325,6 @@ Lisp programs.
325* Debugger Operation:: Connection between the debugger and source buffers. 325* Debugger Operation:: Connection between the debugger and source buffers.
326* Commands of GUD:: Key bindings for common commands. 326* Commands of GUD:: Key bindings for common commands.
327* GUD Customization:: Defining your own commands for GUD. 327* GUD Customization:: Defining your own commands for GUD.
328* GUD Tooltips:: Showing variable values by pointing with the mouse.
329* GDB Graphical Interface:: An enhanced mode that uses GDB features to 328* GDB Graphical Interface:: An enhanced mode that uses GDB features to
330 implement a graphical debugging environment through 329 implement a graphical debugging environment through
331 Emacs. 330 Emacs.
@@ -340,18 +339,9 @@ to a particular debugger program.
340@table @kbd 339@table @kbd
341@item M-x gdb @key{RET} @var{file} @key{RET} 340@item M-x gdb @key{RET} @var{file} @key{RET}
342@findex gdb 341@findex gdb
343Run GDB as a subprocess of Emacs. By default, GDB starts as for 342Run GDB as a subprocess of Emacs. By default, this operates in
344@kbd{M-x gdba} below. If you want GDB to start as in Emacs 21.3 and 343graphical mode; @xref{GDB Graphical Interface}. Graphical mode
345earlier then edit the string in the minibuffer or set 344does not support any other debuggers.
346@code{gud-gdb-command-name} to ``gdb --fullname''. You need to do
347this if you want to run multiple debugging sessions within one Emacs
348session. In this case, the command creates a buffer for input and
349output to GDB, and switches to it. If a GDB buffer already exists, it
350just switches to that buffer.
351
352@item M-x gdba @key{RET} @var{file} @key{RET}
353Run GDB as a subprocess of Emacs, providing a graphical interface
354to GDB features through Emacs. @xref{GDB Graphical Interface}.
355 345
356@item M-x dbx @key{RET} @var{file} @key{RET} 346@item M-x dbx @key{RET} @var{file} @key{RET}
357@findex dbx 347@findex dbx
@@ -396,8 +386,6 @@ debugger supports. However, shell wildcards and variables are not
396allowed. GUD assumes that the first argument not starting with a 386allowed. GUD assumes that the first argument not starting with a
397@samp{-} is the executable file name. 387@samp{-} is the executable file name.
398 388
399 Emacs can only run one debugger process at a time.
400
401@node Debugger Operation 389@node Debugger Operation
402@subsection Debugger Operation 390@subsection Debugger Operation
403 391
@@ -424,6 +412,14 @@ debugger buffer, which uses a variant of Shell mode. All the usual
424commands for your debugger are available, and you can use the Shell mode 412commands for your debugger are available, and you can use the Shell mode
425history commands to repeat them. @xref{Shell Mode}. 413history commands to repeat them. @xref{Shell Mode}.
426 414
415@cindex tooltips with GUD
416@vindex tooltip-gud-modes
417 The Tooltip facility (@pxref{Tooltips}) provides support for GUD@.
418You activate this feature by customizing the @code{tooltip} group.
419Then you can display a variable's value in a tooltip simply by
420pointing at it with the mouse. This operates in the GUD buffer and in
421source buffers with major modes in the list @code{tooltip-gud-modes}.
422
427@node Commands of GUD 423@node Commands of GUD
428@subsection Commands of GUD 424@subsection Commands of GUD
429 425
@@ -653,28 +649,24 @@ If you don't use @samp{%p} in the command string, the command you define
653ignores any numeric argument. 649ignores any numeric argument.
654@end table 650@end table
655 651
656@node GUD Tooltips
657@subsection GUD Tooltips
658
659@cindex tooltips with GUD
660The Tooltip facility (@pxref{Tooltips}) provides support for GUD@. If
661GUD support is activated by customizing the @code{tooltip} group,
662variable values can be displayed in tooltips by pointing at them with
663the mouse in the GUD buffer or in source buffers with major modes in the
664customizable list @code{tooltip-gud-modes}.
665
666@node GDB Graphical Interface 652@node GDB Graphical Interface
667@subsection GDB Graphical Interface 653@subsection GDB Graphical Interface
668 654
669By default, the command @code{gdb} starts GDB using a graphical 655 By default, the command @code{gdb} starts GDB using a graphical
670interface where you view and control the program's data using Emacs 656interface where you view and control the program's data using Emacs
671windows. You can still interact with GDB through the GUD buffer, but 657windows. You can still interact with GDB through the GUD buffer, but
672the point of this mode is that you can do it through menus and clicks, 658the point of this mode is that you can do it through menus and clicks,
673without needing to know GDB commands. 659without needing to know GDB commands.
674 660
661@vindex gud-gdb-command-name
675@findex gdba 662@findex gdba
676If you have customised @code{gud-gdb-command-name}, then start this 663 You can also run GDB in text command mode, which creates a buffer
677mode with the command @code{gdba}. 664for input and output to GDB. To do this, set
665@code{gud-gdb-command-name} to @code{"gdb --fullname"} or edit the
666startup command in the minibuffer to say that. You need to do use
667text command mode to run multiple debugging sessions within one Emacs
668session. If you have customised @code{gud-gdb-command-name} in that
669way, then you can use @kbd{M-x gdba} to invoke GDB in graphical mode.
678 670
679@menu 671@menu
680* Layout:: Control the number of displayed buffers. 672* Layout:: Control the number of displayed buffers.
diff --git a/man/calendar.texi b/man/calendar.texi
index e0d6577780f..7f90dfcb641 100644
--- a/man/calendar.texi
+++ b/man/calendar.texi
@@ -186,6 +186,8 @@ specified in various ways.
186Move point to specified date (@code{calendar-goto-date}). 186Move point to specified date (@code{calendar-goto-date}).
187@item g D 187@item g D
188Move point to specified day of year (@code{calendar-goto-day-of-year}). 188Move point to specified day of year (@code{calendar-goto-day-of-year}).
189@item g w
190Move point to specified week of year (@code{calendar-goto-iso-week}).
189@item o 191@item o
190Center calendar around specified month (@code{calendar-other-month}). 192Center calendar around specified month (@code{calendar-other-month}).
191@item . 193@item .
@@ -201,9 +203,13 @@ entirety; that is, type @samp{1990}, not @samp{90}.
201 203
202@kindex g D @r{(Calendar mode)} 204@kindex g D @r{(Calendar mode)}
203@findex calendar-goto-day-of-year 205@findex calendar-goto-day-of-year
206@kindex g w @r{(Calendar mode)}
207@findex calendar-goto-iso-week
204 @kbd{g D} (@code{calendar-goto-day-of-year}) prompts for a year and 208 @kbd{g D} (@code{calendar-goto-day-of-year}) prompts for a year and
205day number, and moves to that date. Negative day numbers count backward 209day number, and moves to that date. Negative day numbers count
206from the end of the year. 210backward from the end of the year. @kbd{g w}
211(@code{calendar-goto-iso-week}) prompts for a year and week number,
212and moves to that week.
207 213
208@kindex o @r{(Calendar mode)} 214@kindex o @r{(Calendar mode)}
209@findex calendar-other-month 215@findex calendar-other-month
@@ -1351,7 +1357,7 @@ of @code{appt-audible} is non-@code{nil}, an audible reminder is also given.
1351appointment list for today from the diary file, giving all diary entries 1357appointment list for today from the diary file, giving all diary entries
1352found with recognizable times of day, and reminds you just before each 1358found with recognizable times of day, and reminds you just before each
1353of them. Calling @code{appt-activate} with a negative argument disables 1359of them. Calling @code{appt-activate} with a negative argument disables
1354the appointment package. 1360the appointment package. With no argument, it toggles.
1355 1361
1356 For example, suppose the diary file contains these lines: 1362 For example, suppose the diary file contains these lines:
1357 1363
diff --git a/man/commands.texi b/man/commands.texi
index cc8537c1271..fe70983286f 100644
--- a/man/commands.texi
+++ b/man/commands.texi
@@ -168,11 +168,13 @@ the @kbd{C-f} is a complete key in itself. It's impossible to give
168key sequences, not one.@refill 168key sequences, not one.@refill
169 169
170 All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h}, 170 All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h},
171@kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x n}, @w{@kbd{C-x 171@kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x
172r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x 6}, @key{ESC}, and 172n}, @w{@kbd{C-x r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x
173@kbd{M-g}. But this list is not cast in concrete; it is 1736}, @key{ESC}, and @kbd{M-g}. (@key{F1} and @key{F2} are aliases for
174just a matter of Emacs's standard key bindings. If you customize Emacs, 174@kbd{C-h} and @kbd{C-x 6}.) But this list is not cast in concrete; it
175you can make new prefix keys, or eliminate these. @xref{Key Bindings}. 175is just a matter of Emacs's standard key bindings. If you customize
176Emacs, you can make new prefix keys, or eliminate these. @xref{Key
177Bindings}.
176 178
177 If you do make or eliminate prefix keys, that changes the set of 179 If you do make or eliminate prefix keys, that changes the set of
178possible key sequences. For example, if you redefine @kbd{C-f} as a 180possible key sequences. For example, if you redefine @kbd{C-f} as a
diff --git a/man/custom.texi b/man/custom.texi
index a6a4490d467..6c5c26b3451 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -345,8 +345,9 @@ unacceptable value.
345@kindex M-TAB @r{(customization buffer)} 345@kindex M-TAB @r{(customization buffer)}
346@findex widget-complete 346@findex widget-complete
347 While editing a value or field that is a file name, directory name, 347 While editing a value or field that is a file name, directory name,
348command name, or anything else for which completion is defined, you can 348command name, or anything else for which completion is defined, you
349type @kbd{M-@key{TAB}} (@code{widget-complete}) to do completion. 349can type @kbd{M-@key{TAB}} (@code{widget-complete}) to do completion.
350(@kbd{@key{ESC} @key{TAB}} and @kbd{C-M-i} do the same thing.)
350 351
351 Some variables have a small fixed set of possible legitimate values. 352 Some variables have a small fixed set of possible legitimate values.
352These variables don't let you edit the value textually. Instead, an 353These variables don't let you edit the value textually. Instead, an
diff --git a/man/display.texi b/man/display.texi
index c652b47787a..e96ce21f748 100644
--- a/man/display.texi
+++ b/man/display.texi
@@ -81,14 +81,14 @@ those to be created in the future. (You can also set foreground and
81background colors for the current frame only; see @ref{Frame 81background colors for the current frame only; see @ref{Frame
82Parameters}.) 82Parameters}.)
83 83
84 Emacs 21 can correctly display variable-width fonts, but Emacs 84 Emacs can correctly display variable-width fonts, but Emacs commands
85commands that calculate width and indentation do not know how to 85that calculate width and indentation do not know how to calculate
86calculate variable widths. This can sometimes lead to incorrect 86variable widths. This can sometimes lead to incorrect results when
87results when you use variable-width fonts. In particular, indentation 87you use variable-width fonts. In particular, indentation commands can
88commands can give inconsistent results, so we recommend you avoid 88give inconsistent results, so we recommend you avoid variable-width
89variable-width fonts for editing program source code. Filling will 89fonts for editing program source code. Filling will sometimes make
90sometimes make lines too long or too short. We plan to address these 90lines too long or too short. We plan to address these issues in
91issues in future Emacs versions. 91future Emacs versions.
92 92
93@findex list-faces-display 93@findex list-faces-display
94 To see what faces are currently defined, and what they look like, type 94 To see what faces are currently defined, and what they look like, type
diff --git a/man/eshell.texi b/man/eshell.texi
index fafc60ed186..82e957f4de8 100644
--- a/man/eshell.texi
+++ b/man/eshell.texi
@@ -80,7 +80,6 @@ handling the sort of tasks accomplished by those tools.
80 80
81@menu 81@menu
82* What is Eshell?:: A brief introduction to the Emacs Shell. 82* What is Eshell?:: A brief introduction to the Emacs Shell.
83* Installation:: For users of Emacs 20 and XEmacs.
84* Command basics:: The basics of command usage. 83* Command basics:: The basics of command usage.
85* Commands:: 84* Commands::
86* Arguments:: 85* Arguments::
@@ -146,8 +145,6 @@ Any tool you use often deserves the time spent learning to master it.
146looks like: But don't let it fool you; once you know what's going on, 145looks like: But don't let it fool you; once you know what's going on,
147it's easier than it looks: @code{ls -lt **/*.doc(Lk+50aM+5)}.} 146it's easier than it looks: @code{ls -lt **/*.doc(Lk+50aM+5)}.}
148 147
149As of Emacs 21, Eshell is part of the standard Emacs distribution.
150
151@menu 148@menu
152* Contributors to Eshell:: People who have helped out! 149* Contributors to Eshell:: People who have helped out!
153@end menu 150@end menu
@@ -192,196 +189,6 @@ Apart from these, a lot of people have sent suggestions, ideas,
192requests, bug reports and encouragement. Thanks a lot! Without you 189requests, bug reports and encouragement. Thanks a lot! Without you
193there would be no new releases of Eshell. 190there would be no new releases of Eshell.
194 191
195@node Installation
196@chapter Installation
197@cindex installation
198
199As mentioned above, Eshell comes preinstalled as of Emacs 21. If you're
200using Emacs 20.4 or later, or XEmacs 21, you can download the most
201recent version of Eshell from
202@url{http://www.gci-net.com/users/j/johnw/Emacs/packages/eshell.tar.gz}.
203
204However, if you are using Emacs 21, you may skip this section.
205
206@section Short Form
207
208Here's exactly what to do, with no explanation why:
209
210@enumerate
211@item
212@samp{M-x load-file RET eshell-auto.el RET}.
213
214@item
215@samp{ESC : (add-to-list 'load-path "<path where Eshell resides>") RET}.
216
217@item
218@samp{ESC : (add-to-list 'load-path "<path where Pcomplete resides>") RET}.
219
220@item
221@samp{M-x eshell RET}.
222
223You should see a version banner displayed.
224
225@item
226@samp{ls RET}.
227
228Confirm that you see a file listing.
229
230@item
231@samp{eshell-test RET}.
232
233Confirm that everything runs correctly. Use @kbd{M-x eshell-report-bug} if
234not.
235
236@item
237@samp{cd $@{dirname (locate-library "eshell-auto")@} RET}.
238
239@item
240@samp{find-file Makefile RET}.
241
242@item
243Edit the Makefile to reflect your site.
244
245@item
246@samp{M-x eshell RET}.
247
248@item
249@samp{make install RET}.
250
251@item
252@samp{find-file $user-init-file RET}.
253
254@item
255Add the following lines to your @file{.emacs} file:
256
257@example
258(add-to-list 'load-path "<directory where you install Eshell>")
259(load "eshell-auto")
260@end example
261
262@item
263@samp{M-x eshell RET}.
264
265@item
266@samp{customize-option #'eshell-modules-list RET}.
267
268@item
269Select the extension modules you prefer.
270
271@item
272Restart Emacs!
273
274@item
275@samp{M-x info RET m Eshell RET}.
276
277Read the manual and enjoy!
278@end enumerate
279
280@section Long Form
281
282@enumerate
283@item
284Before building and installing Eshell, it is important to test that it
285will work properly on your system. To do this, first load the file
286@file{eshell-auto}, which will define certain autoloads required to run
287Eshell. This can be done using the command @kbd{M-x load-file}, and
288then selecting the file @file{eshell-auto.el}.
289
290@item
291In order for Emacs to find Eshell's files, the Eshell directory must be
292added to the @code{load-path} variable. This can be done within Emacs by
293typing:
294
295@example
296ESC : (add-to-list 'load-path "<path where Eshell resides>") RET
297ESC : (add-to-list 'load-path "<path where Pcomplete resides>") RET
298@end example
299
300@item
301Start Eshell from the distributed sources, using default settings, by
302typing @kbd{M-x eshell}.
303
304@item
305Verify that Eshell is functional by typing @command{ls} followed by
306@key{RET}. You should have already seen a version banner announcing the
307version number of this release, followed by a prompt.
308
309@item
310Run the test suite by typing @command{eshell-test} followed by @key{RET}
311in the Eshell buffer. It is important that Emacs be left alone while
312the tests are running, since extraneous command input may cause some of
313the tests to fail (they were never intended to run in the background).
314If all of the tests pass, Eshell should work just fine on your system.
315If any of the tests fail, please send e-mail to the Eshell maintainer
316using the command @kbd{M-x eshell-report-bug}.
317
318@item
319Edit the file @file{Makefile} in the directory containing the Eshell
320sources to reflect the location of certain Emacs directories at your
321site. The only things you really have to change are the definitions of
322@code{lispdir} and @code{infodir}. The elisp files will be copied to
323@code{lispdir}, and the info file to @code{infodir}.
324
325@item
326Type @kbd{make install} in the directory containing the Eshell sources.
327This will byte-compile all of the @file{*.el} files and copy both the
328source and compiled versions to the directories specified in the
329previous step. It will also copy the info file, and add a corresponding
330entry to your @file{dir} file----if the program @code{install-info} can
331be found on your system.
332
333If you only want to create the compiled elisp files, but don't want to
334install them, you can type just @kbd{make} instead.
335
336@item
337Add the directory into which Eshell was installed to your
338@code{load-path} variable. This can be done by adding the following
339line to your @file{.emacs} file:
340
341@example
342(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell")
343@end example
344
345The actual directory on your system may differ.
346
347@item
348To install Eshell privately, edit your @file{.emacs} file; to install
349Eshell site-wide, edit the file @file{site-start.el} in your
350@file{site-lisp} directory (usually
351@file{/usr/local/share/emacs/site-lisp} or something similar). In
352either case enter the following line into the appropriate file:
353
354@example
355(load "eshell-auto")
356@end example
357
358@item
359Restart Emacs. After restarting, customize the variable
360@code{eshell-modules-list}. This variable selects which Eshell
361extension modules you want to use. You will find documentation on each
362of those modules in the Info manual.
363@end enumerate
364
365@cindex documentation, printed version
366@cindex printed version of documentation
367If you have @TeX{} installed at your site, you can make a typeset manual
368from @file{eshell.texi}.
369
370@enumerate
371@item
372Run @TeX{} by typing @kbd{texi2dvi eshell.texi}. (With Emacs 21.1 or
373later, typing @kbd{make eshell.dvi} in the @file{man/} subdirectory of
374the Emacs source distribution will do that.)
375
376@item
377Convert the resulting device independent file @file{eshell.dvi} to a
378form which your printer can output and print it. If you have a
379postscript printer, there is a program, @code{dvi2ps}, which does that; there
380is also a program which comes together with @TeX{}, @code{dvips}, which
381you can use. For other printers, use a suitable DVI driver,
382e.g., @code{dvilj4} for LaserJet-compatible printers.
383@end enumerate
384
385@node Command basics 192@node Command basics
386@chapter Basic overview 193@chapter Basic overview
387 194
diff --git a/man/files.texi b/man/files.texi
index df7809309e8..fff30e21217 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -1297,23 +1297,27 @@ check-in time. However, CVS can also be set up to require locking.
1297@cindex log File, types of 1297@cindex log File, types of
1298@cindex version control log 1298@cindex version control log
1299 1299
1300GNU projects under a revision control system generally possess 1300 Projects that use a revision control system can have @emph{two}
1301@emph{two} types of log for changes. One is the per-file log 1301types of log for changes. One is the per-file log maintained by the
1302maintained by the revision control system: each time you check in a 1302revision control system: each time you check in a change, you must
1303change, you must fill out a @dfn{log entry} for the change (@pxref{Log 1303fill out a @dfn{log entry} for the change (@pxref{Log Buffer}). This
1304Buffer}). This kind of log is called the @dfn{version control log}, 1304kind of log is called the @dfn{version control log}, also the
1305also the @dfn{revision control log}, @dfn{RCS log}, or @dfn{CVS log}. 1305@dfn{revision control log}, @dfn{RCS log}, or @dfn{CVS log}.
1306 1306
1307The other kind of log is the change log file, typically a file called 1307 The other kind of log is the file @file{ChangeLog} (@pxref{Change
1308@file{ChangeLog}. It provides a chronological record of all changes 1308Log}). It provides a chronological record of all changes to a large
1309to a large portion of a program---one directory and its 1309portion of a program---typically one directory and its subdirectories.
1310subdirectories. A small program would use one @file{ChangeLog} file; 1310A small program would use one @file{ChangeLog} file; a large program
1311a large program may well merit a @file{ChangeLog} file in each major 1311may well merit a @file{ChangeLog} file in each major directory.
1312directory. @xref{Change Log}. 1312@xref{Change Log}.
1313 1313
1314When you use version control, you can use just the per-file log if you 1314 A project maintained with version control can use just the per-file
1315wish, or you can use both kinds of logs. When you use both, you 1315log, or it can use both kinds of logs. It can handle some files one
1316typically want to write just one entry for each change. You can write 1316way and some files the other way. Each project has its policy, which
1317you should follow.
1318
1319 When the policy is to use both, you typically want to write an entry
1320for each change just once, then put it into both logs. You can write
1317the entry in @file{ChangeLog}, then copy it to the log buffer when you 1321the entry in @file{ChangeLog}, then copy it to the log buffer when you
1318check in the change. Or you can write the entry in the log buffer 1322check in the change. Or you can write the entry in the log buffer
1319while checking in the change, and later use the @kbd{C-x v a} command 1323while checking in the change, and later use the @kbd{C-x v a} command
diff --git a/man/fixit.texi b/man/fixit.texi
index 104297b974e..23f385fc158 100644
--- a/man/fixit.texi
+++ b/man/fixit.texi
@@ -311,9 +311,10 @@ Show the list of options.
311completions based on spelling correction. Insert the beginning of a 311completions based on spelling correction. Insert the beginning of a
312word, and then type @kbd{M-@key{TAB}}; the command displays a 312word, and then type @kbd{M-@key{TAB}}; the command displays a
313completion list window. (If your window manager intercepts 313completion list window. (If your window manager intercepts
314@kbd{M-@key{TAB}}, type @kbd{@key{ESC} @key{TAB}}.) To choose one of 314@kbd{M-@key{TAB}}, type @kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}.) To
315the completions listed, click @kbd{Mouse-2} on it, or move the cursor 315choose one of the completions listed, click @kbd{Mouse-2} or
316there in the completions window and type @key{RET}. @xref{Text Mode}. 316@kbd{Mouse-1} fast on it, or move the cursor there in the completions
317window and type @key{RET}. @xref{Text Mode}.
317 318
318@ignore 319@ignore
319@findex reload-ispell 320@findex reload-ispell
diff --git a/man/glossary.texi b/man/glossary.texi
index 5782ee7f2d8..c9dbcc952cf 100644
--- a/man/glossary.texi
+++ b/man/glossary.texi
@@ -65,7 +65,7 @@ A backup file records the contents that a file had before the current
65editing session. Emacs makes backup files automatically to help you 65editing session. Emacs makes backup files automatically to help you
66track down or cancel changes you later regret making. @xref{Backup}. 66track down or cancel changes you later regret making. @xref{Backup}.
67 67
68@item Balance Parentheses 68@item Balancing Parentheses
69Emacs can balance parentheses (or other matching delimiters) either 69Emacs can balance parentheses (or other matching delimiters) either
70manually or automatically. You do manual balancing with the commands 70manually or automatically. You do manual balancing with the commands
71to move over parenthetical groupings (@pxref{Moving by Parens}). 71to move over parenthetical groupings (@pxref{Moving by Parens}).
@@ -139,6 +139,9 @@ you press down on a mouse button. @xref{Mouse Buttons}.
139@item By Default 139@item By Default
140See `default.' 140See `default.'
141 141
142@item Byte Compilation
143See `compilation.'
144
142@item @kbd{C-} 145@item @kbd{C-}
143@kbd{C-} in the name of a character is an abbreviation for Control. 146@kbd{C-} in the name of a character is an abbreviation for Control.
144@xref{User Input,C-}. 147@xref{User Input,C-}.
@@ -246,15 +249,16 @@ characters. @xref{User Input}.
246 249
247@item Copyleft 250@item Copyleft
248A copyleft is a notice giving the public legal permission to 251A copyleft is a notice giving the public legal permission to
249redistribute a program or other work of art. Copyright is normally used 252redistribute and modify a program or other work of art, but requiring
250to keep users divided and helpless; with copyleft we turn that around 253modified versions to carry similar permission. Copyright is normally
251to empower users and encourage them to cooperate. 254used to keep users divided and helpless; with copyleft we turn that
255around to empower users and encourage them to cooperate.
252 256
253The particular form of copyleft used by the GNU project is called the 257The particular form of copyleft used by the GNU project is called the
254GNU General Public License. @xref{Copying}. 258GNU General Public License. @xref{Copying}.
255 259
256@item @key{CTRL} 260@item @key{CTRL}
257The @key{CTLR} or ``control'' key is what you hold down 261The @key{CTRL} or ``control'' key is what you hold down
258in order to enter a control character (q.v.). 262in order to enter a control character (q.v.).
259 263
260@item Current Buffer 264@item Current Buffer
@@ -263,7 +267,7 @@ commands operate. You can select any Emacs buffer as the current one.
263@xref{Buffers}. 267@xref{Buffers}.
264 268
265@item Current Line 269@item Current Line
266The current line is a line point is on (@pxref{Point}). 270The current line is the line that point is on (@pxref{Point}).
267 271
268@item Current Paragraph 272@item Current Paragraph
269The current paragraph is the paragraph that point is in. If point is 273The current paragraph is the paragraph that point is in. If point is
@@ -284,8 +288,9 @@ people speak of `the cursor' when, strictly speaking, they mean
284 288
285@item Customization 289@item Customization
286Customization is making minor changes in the way Emacs works. It is 290Customization is making minor changes in the way Emacs works. It is
287often done by setting variables (@pxref{Variables}) or by rebinding 291often done by setting variables (@pxref{Variables}) or faces
288key sequences (@pxref{Keymaps}). 292(@pxref{Face Customization}), or by rebinding key sequences
293(@pxref{Keymaps}).
289 294
290@cindex cut and paste 295@cindex cut and paste
291@item Cut and Paste 296@item Cut and Paste
@@ -372,9 +377,10 @@ arguments to commands, for asking questions, and showing brief messages
372@samp{*Messages*} so you can review them later. @xref{Echo Area}. 377@samp{*Messages*} so you can review them later. @xref{Echo Area}.
373 378
374@item Echoing 379@item Echoing
375Echoing is acknowledging the receipt of commands by displaying them (in 380Echoing is acknowledging the receipt of input events by displaying
376the echo area). Emacs never echoes single-character key sequences; 381them (in the echo area). Emacs never echoes single-character key
377longer key sequences echo only if you pause while typing them. 382sequences; longer key sequences echo only if you pause while typing
383them.
378 384
379@item Electric 385@item Electric
380We say that a character is electric if it is normally self-inserting 386We say that a character is electric if it is normally self-inserting
@@ -493,16 +499,16 @@ See `page.'
493@item Frame 499@item Frame
494A frame is a rectangular cluster of Emacs windows. Emacs starts out 500A frame is a rectangular cluster of Emacs windows. Emacs starts out
495with one frame, but you can create more. You can subdivide each frame 501with one frame, but you can create more. You can subdivide each frame
496into Emacs windows (q.v.@:). When you are using a windowing system, all 502into Emacs windows (q.v.@:). When you are using a window system
497the frames can be visible at the same time. @xref{Frames}. Some 503(q.v.@:), all the frames can be visible at the same time.
498other editors use the term ``window'' for this, but in Emacs a window 504@xref{Frames}. Some other editors use the term ``window'' for this,
499means something else. 505but in Emacs a window means something else.
500 506
501@item Fringe 507@item Fringe
502On windowed displays, there's a narrow portion of the frame (q.v.@:) 508On a graphical terminal (q.v.@:), there's a narrow portion of the
503between the text area and the window's border. Emacs displays the 509frame (q.v.@:) between the text area and the window's border. Emacs
504fringe using a special face (q.v.@:) called @code{fringe}. 510displays the fringe using a special face (q.v.@:) called
505@xref{Faces,fringe}. 511@code{fringe}. @xref{Faces,fringe}.
506 512
507@item FTP 513@item FTP
508FTP is an acronym for File Transfer Protocol. Emacs uses an FTP client 514FTP is an acronym for File Transfer Protocol. Emacs uses an FTP client
@@ -550,6 +556,10 @@ letters, digits, punctuation, and spaces; they do not include
550@key{RET} or @key{ESC}. In Emacs, typing a graphic character inserts 556@key{RET} or @key{ESC}. In Emacs, typing a graphic character inserts
551that character (in ordinary editing modes). @xref{Inserting Text}. 557that character (in ordinary editing modes). @xref{Inserting Text}.
552 558
559@item Graphical Terminal
560A graphical terminal is one that can display images and multiple fonts.
561Usually it also has a window system (q.v.@:).
562
553@item Highlighting 563@item Highlighting
554Highlighting text means displaying it with a different foreground and/or 564Highlighting text means displaying it with a different foreground and/or
555background color to make it stand out from the rest of the text in the 565background color to make it stand out from the rest of the text in the
@@ -642,6 +652,9 @@ Justification means adding extra spaces within lines of text to make
642them extend exactly to a specified width. 652them extend exactly to a specified width.
643@xref{Format Justification}. 653@xref{Format Justification}.
644 654
655@item Keybinding
656See `binding.'
657
645@item Keyboard Macro 658@item Keyboard Macro
646Keyboard macros are a way of defining new Emacs commands from 659Keyboard macros are a way of defining new Emacs commands from
647sequences of existing ones, with no need to write a Lisp program. 660sequences of existing ones, with no need to write a Lisp program.
@@ -761,6 +774,10 @@ The Emacs major modes are a mutually exclusive set of options, each of
761which configures Emacs for editing a certain sort of text. Ideally, 774which configures Emacs for editing a certain sort of text. Ideally,
762each programming language has its own major mode. @xref{Major Modes}. 775each programming language has its own major mode. @xref{Major Modes}.
763 776
777@item Margin
778The space between the usable part of a window (including the
779fringe) and the window edge.
780
764@item Mark 781@item Mark
765The mark points to a position in the text. It specifies one end of the 782The mark points to a position in the text. It specifies one end of the
766region (q.v.@:), point being the other end. Many commands operate on 783region (q.v.@:), point being the other end. Many commands operate on
@@ -981,7 +998,7 @@ See `regular expression.'
981The region is the text between point (q.v.@:) and the mark (q.v.@:). 998The region is the text between point (q.v.@:) and the mark (q.v.@:).
982Many commands operate on the text of the region. @xref{Mark,Region}. 999Many commands operate on the text of the region. @xref{Mark,Region}.
983 1000
984@item Registers 1001@item Register
985Registers are named slots in which text or buffer positions or 1002Registers are named slots in which text or buffer positions or
986rectangles can be saved for later use. @xref{Registers}. A related 1003rectangles can be saved for later use. @xref{Registers}. A related
987Emacs feature is `bookmarks' (q.v.@:). 1004Emacs feature is `bookmarks' (q.v.@:).
@@ -1054,7 +1071,15 @@ applications can use it for transferring text to and from other
1054applications. Emacs has special mouse commands for transferring text 1071applications. Emacs has special mouse commands for transferring text
1055using the secondary selection. @xref{Secondary Selection}. 1072using the secondary selection. @xref{Secondary Selection}.
1056 1073
1057@item Selecting 1074@item Selected Frame
1075The selected frame is the one your input currently operates on.
1076@xref{Frames}.
1077
1078@item Selected Window
1079The selected frame is the one your input currently operates on.
1080@xref{Basic Windows}.
1081
1082@item Selecting a Buffer
1058Selecting a buffer means making it the current (q.v.@:) buffer. 1083Selecting a buffer means making it the current (q.v.@:) buffer.
1059@xref{Select Buffer}. 1084@xref{Select Buffer}.
1060 1085
@@ -1100,7 +1125,7 @@ warns one of the users to investigate.
1100space bar. 1125space bar.
1101 1126
1102@item Speedbar 1127@item Speedbar
1103Speedbar is a special tall frame that provides fast access to Emacs 1128The speedbar is a special tall frame that provides fast access to Emacs
1104buffers, functions within those buffers, Info nodes, and other 1129buffers, functions within those buffers, Info nodes, and other
1105interesting parts of text within Emacs. @xref{Speedbar}. 1130interesting parts of text within Emacs. @xref{Speedbar}.
1106 1131
@@ -1262,6 +1287,10 @@ can display the contents of one buffer (q.v.@:) at any time.
1262other editors use the term ``window'' for what we call a `frame' 1287other editors use the term ``window'' for what we call a `frame'
1263(q.v.@:) in Emacs. 1288(q.v.@:) in Emacs.
1264 1289
1290@item Window System
1291A window system is a graphical terminal (q.v.@:) that can display multiple
1292windows for different programs at the same time.
1293
1265@item Word Abbrev 1294@item Word Abbrev
1266See `abbrev.' 1295See `abbrev.'
1267 1296
diff --git a/man/help.texi b/man/help.texi
index d546440e114..ebc650412b4 100644
--- a/man/help.texi
+++ b/man/help.texi
@@ -249,15 +249,15 @@ f} command, then go on editing.
249 @kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but describes 249 @kbd{C-h v} (@code{describe-variable}) is like @kbd{C-h f} but describes
250Lisp variables instead of Lisp functions. Its default is the Lisp symbol 250Lisp variables instead of Lisp functions. Its default is the Lisp symbol
251around or before point, but only if that is the name of a known Lisp 251around or before point, but only if that is the name of a known Lisp
252variable. @xref{Variables}.@refill 252variable. @xref{Variables}.
253 253
254 Help buffers describing variables or functions defined in Lisp 254 Help buffers describing Emacs variables and functions normally have
255normally have hyperlinks to the Lisp definition, if you have the Lisp 255hyperlinks to the definition, if you have the source files installed.
256source files installed. If you know Lisp, this provides the ultimate 256(@xref{Hyperlinking}.) If you know Lisp (or C), this provides the
257documentation. If you don't know Lisp, you should learn it. If you 257ultimate documentation. If you don't know Lisp, you should learn it.
258are just @emph{using} Emacs, treating Emacs as an object (file), then 258If you are just @emph{using} Emacs, treating Emacs as an object
259you don't really love it. For true intimacy with your editor, you 259(file), then you don't really love it. For true intimacy with your
260need to read the source code. 260editor, you need to read the source code.
261 261
262@node Apropos 262@node Apropos
263@section Apropos 263@section Apropos
diff --git a/man/mh-e.texi b/man/mh-e.texi
index 77fcbbc7254..c998debb16b 100644
--- a/man/mh-e.texi
+++ b/man/mh-e.texi
@@ -99,7 +99,7 @@ GNU Emacs and MH@. Now I'm fully hooked on both of them.
99@cindex history 99@cindex history
100 100
101The mh-e package is distributed with GNU Emacs, @footnote{Note that 101The mh-e package is distributed with GNU Emacs, @footnote{Note that
102mh-e is supported with MH 6 and @w{Emacs 18} through @w{Emacs 21}. 102mh-e is supported with MH 6 and @w{Emacs 18} and up.
103Reportedly, large parts of it work with @w{MH 5} and also with 103Reportedly, large parts of it work with @w{MH 5} and also with
104Lucid/XEmacs and Epoch, but there are no guarantees. It is also 104Lucid/XEmacs and Epoch, but there are no guarantees. It is also
105distributed with Lucid/XEmacs, as well as with MH itself.} so you 105distributed with Lucid/XEmacs, as well as with MH itself.} so you
diff --git a/man/mini.texi b/man/mini.texi
index 4345a947a75..844fcbf686c 100644
--- a/man/mini.texi
+++ b/man/mini.texi
@@ -400,8 +400,8 @@ complete to @file{/usr/bin/foo}.
400partial-completion-mode}, or customize the variable 400partial-completion-mode}, or customize the variable
401@code{partial-completion-mode}. This binds the partial completion 401@code{partial-completion-mode}. This binds the partial completion
402commands to @key{TAB}, @key{SPC}, @key{RET}, and @kbd{?}. The usual 402commands to @key{TAB}, @key{SPC}, @key{RET}, and @kbd{?}. The usual
403completion commands are available on @kbd{M-@key{TAB}}, 403completion commands are available on @kbd{M-@key{TAB}} (or
404@kbd{M-@key{SPC}}, @kbd{M-@key{RET}} and @kbd{M-?}. 404@mbd{C-M-i}), @kbd{M-@key{SPC}}, @kbd{M-@key{RET}} and @kbd{M-?}.
405 405
406@vindex PC-include-file-path 406@vindex PC-include-file-path
407@vindex PC-disable-includes 407@vindex PC-disable-includes
diff --git a/man/misc.texi b/man/misc.texi
index 8068de4c25f..9dae303fb05 100644
--- a/man/misc.texi
+++ b/man/misc.texi
@@ -389,12 +389,11 @@ insert the output in the current buffer, then the old region is deleted
389first and the output replaces it as the contents of the region. It 389first and the output replaces it as the contents of the region. It
390returns the command's exit status when it is called from a Lisp program. 390returns the command's exit status when it is called from a Lisp program.
391 391
392 One use for @kbd{M-|} is to run @code{uudecode}. For instance, if 392 One use for @kbd{M-|} is to run @code{gpg} to see what keys are in
393the buffer contains uuencoded text, type @kbd{C-x h M-| uudecode 393the buffer. For instance, if the buffer contains a GPG key, type
394@key{RET}} to feed the entire buffer contents to the @code{uudecode} 394@kbd{C-x h M-| uudecode @key{RET}} to feed the entire buffer contents
395program. That program will ignore everything except the encoded text, 395to the @code{gpg} program. That program will ignore everything except
396and will store the decoded output into the file whose name is 396the encoded keys, and will output a list of the keys it contains.
397specified in the encoded text.
398 397
399@vindex shell-file-name 398@vindex shell-file-name
400 Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify the 399 Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify the
@@ -405,13 +404,18 @@ searched; this list is initialized based on the environment variable
405@env{PATH} when Emacs is started. Your @file{.emacs} file can override 404@env{PATH} when Emacs is started. Your @file{.emacs} file can override
406either or both of these default initializations.@refill 405either or both of these default initializations.@refill
407 406
408 Both @kbd{M-!} and @kbd{M-|} wait for the shell command to complete. 407 Both @kbd{M-!} and @kbd{M-|} wait for the shell command to complete,
409To stop waiting, type @kbd{C-g} to quit; that terminates the shell 408unless you end the command with @samp{&} to make it asyncronous. To
409stop waiting, type @kbd{C-g} to quit; that terminates the shell
410command with the signal @code{SIGINT}---the same signal that @kbd{C-c} 410command with the signal @code{SIGINT}---the same signal that @kbd{C-c}
411normally generates in the shell. Emacs waits until the command actually 411normally generates in the shell. Emacs waits until the command
412terminates. If the shell command doesn't stop (because it ignores the 412actually terminates. If the shell command doesn't stop (because it
413@code{SIGINT} signal), type @kbd{C-g} again; this sends the command a 413ignores the @code{SIGINT} signal), type @kbd{C-g} again; this sends
414@code{SIGKILL} signal which is impossible to ignore. 414the command a @code{SIGKILL} signal which is impossible to ignore.
415
416 Asynchronous commands ending in @samp{&} feed their output into
417the buffer @samp{*Async Shell Command*}. Output arrives in that
418buffer regardless of whether it is visible in a window.
415 419
416 To specify a coding system for @kbd{M-!} or @kbd{M-|}, use the command 420 To specify a coding system for @kbd{M-!} or @kbd{M-|}, use the command
417@kbd{C-x @key{RET} c} immediately beforehand. @xref{Specify Coding}. 421@kbd{C-x @key{RET} c} immediately beforehand. @xref{Specify Coding}.
@@ -704,12 +708,12 @@ specializations of Shell mode.
704@subsection Shell Command History 708@subsection Shell Command History
705 709
706 Shell buffers support three ways of repeating earlier commands. You 710 Shell buffers support three ways of repeating earlier commands. You
707can use the same keys used in the minibuffer; these work much as they do 711can use keys like those used for the minibuffer history; these work
708in the minibuffer, inserting text from prior commands while point 712much as they do in the minibuffer, inserting text from prior commands
709remains always at the end of the buffer. You can move through the 713while point remains always at the end of the buffer. You can move
710buffer to previous inputs in their original place, then resubmit them or 714through the buffer to previous inputs in their original place, then
711copy them to the end. Or you can use a @samp{!}-style history 715resubmit them or copy them to the end. Or you can use a
712reference. 716@samp{!}-style history reference.
713 717
714@menu 718@menu
715* Ring: Shell Ring. Fetching commands from the history list. 719* Ring: Shell Ring. Fetching commands from the history list.
@@ -724,11 +728,13 @@ reference.
724@findex comint-previous-input 728@findex comint-previous-input
725@kindex M-p @r{(Shell mode)} 729@kindex M-p @r{(Shell mode)}
726@item M-p 730@item M-p
731@itemx C-@key{UP}
727Fetch the next earlier old shell command. 732Fetch the next earlier old shell command.
728 733
729@kindex M-n @r{(Shell mode)} 734@kindex M-n @r{(Shell mode)}
730@findex comint-next-input 735@findex comint-next-input
731@item M-n 736@item M-n
737@itemx C-@key{DOWN}
732Fetch the next later old shell command. 738Fetch the next later old shell command.
733 739
734@kindex M-r @r{(Shell mode)} 740@kindex M-r @r{(Shell mode)}
@@ -762,11 +768,13 @@ reuse shell commands from the history, use the editing commands @kbd{M-p},
762history commands except that they operate on the text at the end of the 768history commands except that they operate on the text at the end of the
763shell buffer, where you would normally insert text to send to the shell. 769shell buffer, where you would normally insert text to send to the shell.
764 770
765 @kbd{M-p} fetches an earlier shell command to the end of the shell buffer. 771 @kbd{M-p} fetches an earlier shell command to the end of the shell
766Successive use of @kbd{M-p} fetches successively earlier shell commands, 772buffer. Successive use of @kbd{M-p} fetches successively earlier
767each replacing any text that was already present as potential shell input. 773shell commands, each replacing any text that was already present as
768@kbd{M-n} does likewise except that it finds successively more recent shell 774potential shell input. @kbd{M-n} does likewise except that it finds
769commands from the buffer. 775successively more recent shell commands from the buffer.
776@kbd{C-@key{UP}} works like @kbd{M-p}, and @kbd{C-@key{DOWN}} like
777@kbd{M-n}.
770 778
771 The history search commands @kbd{M-r} and @kbd{M-s} read a regular 779 The history search commands @kbd{M-r} and @kbd{M-s} read a regular
772expression and search through the history for a matching command. Aside 780expression and search through the history for a matching command. Aside
@@ -948,6 +956,10 @@ the value is @code{other}, point jumps in all nonselected windows that
948show the current buffer. The default value is @code{nil}, which means 956show the current buffer. The default value is @code{nil}, which means
949point does not jump to the end. 957point does not jump to the end.
950 958
959@vindex comint-prompt-read-only
960 If you set @code{comint-prompt-read-only}, the prompts in the Comint
961buffer a read-only.
962
951@vindex comint-input-ignoredups 963@vindex comint-input-ignoredups
952 The variable @code{comint-input-ignoredups} controls whether successive 964 The variable @code{comint-input-ignoredups} controls whether successive
953identical inputs are stored in the input history. A non-@code{nil} 965identical inputs are stored in the input history. A non-@code{nil}
@@ -1297,10 +1309,10 @@ long as you like to edit the files in Emacs.)
1297running @code{emacsclient} in a script. It specifies a command to run 1309running @code{emacsclient} in a script. It specifies a command to run
1298if @code{emacsclient} fails to contact Emacs. For example, the 1310if @code{emacsclient} fails to contact Emacs. For example, the
1299following setting for the @var{EDITOR} environment variable will 1311following setting for the @var{EDITOR} environment variable will
1300always give an editor, even if Emacs is not running: 1312always give you an editor, even if no Emacs server is running:
1301 1313
1302@example 1314@example
1303EDITOR="emacsclient --alternate-editor vi +%d %s" 1315EDITOR="emacsclient --alternate-editor emacs +%d %s"
1304@end example 1316@end example
1305 1317
1306@noindent 1318@noindent
@@ -1537,8 +1549,8 @@ described in the Lisp files @file{ps-print.el} and @file{ps-mule.el}.
1537@cindex sorting 1549@cindex sorting
1538 1550
1539 Emacs provides several commands for sorting text in the buffer. All 1551 Emacs provides several commands for sorting text in the buffer. All
1540operate on the contents of the region (the text between point and the 1552operate on the contents of the region.
1541mark). They divide the text of the region into many @dfn{sort records}, 1553They divide the text of the region into many @dfn{sort records},
1542identify a @dfn{sort key} for each record, and then reorder the records 1554identify a @dfn{sort key} for each record, and then reorder the records
1543into the order determined by the sort keys. The records are ordered so 1555into the order determined by the sort keys. The records are ordered so
1544that their keys are in alphabetical order, or, for numeric sorting, in 1556that their keys are in alphabetical order, or, for numeric sorting, in
@@ -1895,7 +1907,7 @@ subsequent Emacs sessions reload the saved desktop.
1895@findex desktop-save 1907@findex desktop-save
1896@vindex desktop-save-mode 1908@vindex desktop-save-mode
1897 You can save the desktop manually with the command @kbd{M-x 1909 You can save the desktop manually with the command @kbd{M-x
1898desktop-save}. You can also enable automatical desktop saving when 1910desktop-save}. You can also enable automatic desktop saving when
1899you exit Emacs: use the Customization buffer (@pxref{Easy 1911you exit Emacs: use the Customization buffer (@pxref{Easy
1900Customization}) to set @code{desktop-save-mode} to @code{t} for future 1912Customization}) to set @code{desktop-save-mode} to @code{t} for future
1901sessions, or add this line in your @file{~/.emacs} file: 1913sessions, or add this line in your @file{~/.emacs} file:
@@ -1962,7 +1974,7 @@ for the debugger, within the recursive editing level for @kbd{C-r}.
1962Mode lines display a pair of square brackets for each recursive editing 1974Mode lines display a pair of square brackets for each recursive editing
1963level currently in progress. 1975level currently in progress.
1964 1976
1965 Exiting the inner recursive edit (such as, with the debugger @kbd{c} 1977 Exiting the inner recursive edit (such as with the debugger @kbd{c}
1966command) resumes the command running in the next level up. When that 1978command) resumes the command running in the next level up. When that
1967command finishes, you can then use @kbd{C-M-c} to exit another recursive 1979command finishes, you can then use @kbd{C-M-c} to exit another recursive
1968editing level, and so on. Exiting applies to the innermost level only. 1980editing level, and so on. Exiting applies to the innermost level only.
@@ -2041,11 +2053,7 @@ buffers or major modes while in EDT emulation.
2041@cindex ``PC'' key bindings 2053@cindex ``PC'' key bindings
2042The command @kbd{M-x pc-bindings-mode} sets up certain key bindings 2054The command @kbd{M-x pc-bindings-mode} sets up certain key bindings
2043for ``PC compatibility''---what people are often used to on PCs---as 2055for ``PC compatibility''---what people are often used to on PCs---as
2044follows: @kbd{Delete} and its variants delete forward instead of 2056follows: @kbd{M-Backspace} does undo, and @kbd{C-Escape} does
2045backward, @kbd{C-Backspace} kills backward a word (as @kbd{C-Delete}
2046normally would), @kbd{M-Backspace} does undo, @kbd{Home} and @kbd{End}
2047move to beginning and end of line, @kbd{C-Home} and @kbd{C-End} move
2048to beginning and end of buffer and @kbd{C-Escape} does
2049@code{list-buffers}. 2057@code{list-buffers}.
2050 2058
2051@item PC Selection mode 2059@item PC Selection mode
@@ -2132,9 +2140,13 @@ key bindings.
2132@cindex navigation 2140@cindex navigation
2133 Various modes documented elsewhere have hypertext features so that 2141 Various modes documented elsewhere have hypertext features so that
2134you can follow links, usually by clicking @kbd{Mouse-2} on the link or 2142you can follow links, usually by clicking @kbd{Mouse-2} on the link or
2135typing @key{RET} while point is on the link. Info mode, Help mode and 2143typing @key{RET} while point is on the link. Clicking @kbd{Mouse-1}
2136the Dired-like modes are examples. The Tags facility links between 2144quickly on the link also follows it. (Hold @kbd{Mouse-1} for longer
2137uses and definitions in source files, see @ref{Tags}. Imenu provides 2145if you want to set point instead.)
2146
2147 Info mode, Help mode and the Dired-like modes are examples of modes
2148that have links in the buffer. The Tags facility links between uses
2149and definitions in source files, see @ref{Tags}. Imenu provides
2138navigation amongst items indexed in the current buffer, see 2150navigation amongst items indexed in the current buffer, see
2139@ref{Imenu}. Info-lookup provides mode-specific lookup of definitions 2151@ref{Imenu}. Info-lookup provides mode-specific lookup of definitions
2140in Info indexes, see @ref{Documentation}. Speedbar maintains a frame 2152in Info indexes, see @ref{Documentation}. Speedbar maintains a frame
@@ -2149,7 +2161,6 @@ fashion.
2149* Browse-URL:: Following URLs. 2161* Browse-URL:: Following URLs.
2150* Goto-address:: Activating URLs. 2162* Goto-address:: Activating URLs.
2151* FFAP:: Finding files etc. at point. 2163* FFAP:: Finding files etc. at point.
2152* Find-func:: Finding function and variable definitions.
2153@end menu 2164@end menu
2154 2165
2155@node Browse-URL 2166@node Browse-URL
@@ -2288,41 +2299,6 @@ Display a menu of files and URLs mentioned in current buffer, then
2288find the one you select (@code{ffap-menu}). 2299find the one you select (@code{ffap-menu}).
2289@end table 2300@end table
2290 2301
2291@node Find-func
2292@subsection Finding Function and Variable Definitions
2293@cindex definitions, finding in Lisp sources
2294@cindex Lisp definitions, finding in sources
2295
2296@table @kbd
2297@item M-x find-function @key{RET} @var{function} @key{RET}
2298Find the definition of @var{function} in its source file.
2299@item M-x find-variable @key{RET} @var{variable} @key{RET}
2300Find the definition of @var{variable} in its source file.
2301@item M-x find-function-on-key @key{RET} @var{key}
2302Find the definition of the function that @var{key} invokes.
2303@end table
2304
2305 These commands provide an easy way to find the definitions of Emacs
2306Lisp functions and variables. They are similar in purpose to the Tags
2307facility (@pxref{Tags}), but don't require a tags table; on the other
2308hand, they only work for function and variable definitions that are
2309already loaded in the Emacs session.
2310
2311@findex find-function
2312@findex find-function-on-key
2313@findex find-variable
2314 To find the definition of a function, use @kbd{M-x find-function}.
2315@kbd{M-x find-variable} finds the definition of a specified variable.
2316@kbd{M-x find-function-on-key} finds the definition of the function
2317bound to a specified key.
2318
2319 To use these commands, you must have the Lisp source (@samp{.el})
2320files available along with the compiled (@samp{.elc}) files, in
2321directories in @code{load-path}. You can use compressed source files
2322if you enable Auto Compression mode. These commands only handle
2323definitions written in Lisp, not primitive functions or variables
2324defined in the C code of Emacs.
2325
2326@node Dissociated Press, Amusements, Hyperlinking, Top 2302@node Dissociated Press, Amusements, Hyperlinking, Top
2327@section Dissociated Press 2303@section Dissociated Press
2328 2304
diff --git a/man/pcl-cvs.texi b/man/pcl-cvs.texi
index a99cd39a8d9..de9b962e4a5 100644
--- a/man/pcl-cvs.texi
+++ b/man/pcl-cvs.texi
@@ -77,7 +77,7 @@ of the various commands and major modes for further information.
77@end ifnottex 77@end ifnottex
78 78
79@menu 79@menu
80* About PCL-CVS:: Installation, credits, history, @dots{} 80* About PCL-CVS:: Credits, history, @dots{}
81 81
82* Getting started:: An introduction with a walk-through example. 82* Getting started:: An introduction with a walk-through example.
83* Buffer contents:: An explanation of the buffer contents. 83* Buffer contents:: An explanation of the buffer contents.
@@ -100,7 +100,6 @@ of the various commands and major modes for further information.
100About PCL-CVS 100About PCL-CVS
101 101
102* Contributors:: Contributors to PCL-CVS. 102* Contributors:: Contributors to PCL-CVS.
103* Installation::
104 103
105Commands 104Commands
106 105
@@ -152,14 +151,11 @@ separate XEmacs version was slowly splitting away. In late 1998,
152Stefan Monnier picked up development again, adding some major new 151Stefan Monnier picked up development again, adding some major new
153functionality and taking over the maintenance. 152functionality and taking over the maintenance.
154 153
155As of Emacs 21, PCL-CVS is part of the standard Emacs distribution.
156
157@menu 154@menu
158* Contributors:: Contributors to PCL-CVS. 155* Contributors:: Contributors to PCL-CVS.
159* Installation::
160@end menu 156@end menu
161 157
162@node Contributors, Installation, About PCL-CVS, About PCL-CVS 158@node Contributors,, About PCL-CVS, About PCL-CVS
163@section Contributors to PCL-CVS 159@section Contributors to PCL-CVS
164@cindex Contributors 160@cindex Contributors
165@cindex Authors 161@cindex Authors
@@ -236,39 +232,6 @@ requests, bug reports and encouragement. Thanks a lot! Without you
236there would be no new releases of PCL-CVS. 232there would be no new releases of PCL-CVS.
237 233
238 234
239@node Installation, , Contributors, About PCL-CVS
240@section Installation
241@cindex Installation
242
243As mentioned above, PCL-CVS comes bundled with Emacs version 21.1 and
244later. If you're using Emacs 20, you can download an older version of
245PCL-CVS from @uref{ftp://flint.cs.yale.edu/pub/monnier/pcl-cvs}. That
246version also works on XEmacs.
247
248If you are running XEmacs 21.0 or later, PCL-CVS is available in
249pre-compiled package form. Please refer to the XEmacs manual for
250instructions regarding package selection and installation. Currently,
251that PCL-CVS package also requires you to have installed the
252@file{xemacs-base}, @file{elib}, and @file{dired} packages.
253
254If you have @TeX{} installed at your site, you can make a typeset manual
255from @file{pcl-cvs.texi}.
256
257@enumerate
258@item
259If PCL-CVS came with the Emacs distribution, type @kbd{make pcl-cvs.dvi}
260in the @file{man} subdirectory of the Emacs source tree.
261@item
262Alternatively, run @TeX{} by typing @kbd{texi2dvi pcl-cvs.texi}.
263@item
264Convert the resulting device independent file @file{pcl-cvs.dvi} to a
265form which your printer can output and print it. If you have a
266PostScript printer, there is a program, @code{dvi2ps}, which does. There
267is also a program which comes together with @TeX{}, @code{dvips}, which
268you can use.
269@end enumerate
270
271
272@node Getting started, Buffer contents, About PCL-CVS, Top 235@node Getting started, Buffer contents, About PCL-CVS, Top
273@chapter Getting started 236@chapter Getting started
274@cindex Introduction 237@cindex Introduction
diff --git a/man/programs.texi b/man/programs.texi
index f884e019d22..2a631a23b5f 100644
--- a/man/programs.texi
+++ b/man/programs.texi
@@ -1326,8 +1326,8 @@ symbol names.
1326partial symbol before point against the set of meaningful symbol 1326partial symbol before point against the set of meaningful symbol
1327names. This command inserts at point any additional characters that 1327names. This command inserts at point any additional characters that
1328it can determine from the partial name. (If your window manager 1328it can determine from the partial name. (If your window manager
1329defines @kbd{M-@key{TAB}} to switch windows, you can type this Emacs 1329defines @kbd{M-@key{TAB}} to switch windows, you can type
1330command as @kbd{@key{ESC} @key{TAB}}.) 1330@kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}.)
1331 1331
1332 If the partial name in the buffer has multiple possible completions 1332 If the partial name in the buffer has multiple possible completions
1333that differ in the very next character, so that it is impossible to 1333that differ in the very next character, so that it is impossible to
diff --git a/man/rmail.texi b/man/rmail.texi
index 3cfa1802a88..ad72b94c3b2 100644
--- a/man/rmail.texi
+++ b/man/rmail.texi
@@ -297,13 +297,14 @@ adding or removing this attribute. @xref{Rmail Attributes}.
297@section Rmail Files and Inboxes 297@section Rmail Files and Inboxes
298@cindex inbox file 298@cindex inbox file
299 299
300 The operating system places incoming mail for you in a file that we 300 When you receive mail locally, the operating system places incoming
301call your @dfn{inbox}. When you start up Rmail, it runs a C program 301mail for you in a file that we call your @dfn{inbox}. When you start
302called @code{movemail} to copy the new messages from your inbox into 302up Rmail, it runs a C program called @code{movemail} to copy the new
303your primary Rmail file, which also contains other messages saved from 303messages from your local inbox into your primary Rmail file, which
304previous Rmail sessions. It is in this file that you actually read the 304also contains other messages saved from previous Rmail sessions. It
305mail with Rmail. This operation is called @dfn{getting new mail}. You 305is in this file that you actually read the mail with Rmail. This
306can get new mail at any time in Rmail by typing @kbd{g}. 306operation is called @dfn{getting new mail}. You can get new mail at
307any time in Rmail by typing @kbd{g}.
307 308
308@vindex rmail-primary-inbox-list 309@vindex rmail-primary-inbox-list
309@cindex @env{MAIL} environment variable 310@cindex @env{MAIL} environment variable
@@ -344,6 +345,35 @@ systems is adequate for the job, and we plan to change Rmail to use that
344as its internal format. However, the Rmail file will still be separate 345as its internal format. However, the Rmail file will still be separate
345from the inbox file, even on systems where their format is the same. 346from the inbox file, even on systems where their format is the same.
346 347
348@vindex rmail-preserve-inbox
349 When getting new mail, Rmail first copies the new mail from the inbox
350file to the Rmail file; then it saves the Rmail file; then it truncates
351the inbox file. This way, a system crash may cause duplication of mail
352between the inbox and the Rmail file, but cannot lose mail. If
353@code{rmail-preserve-inbox} is non-@code{nil}, then Rmail will copy new
354mail from the inbox file to the Rmail file without truncating the inbox
355file. You may wish to set this, for example, on a portable computer you
356use to check your mail via POP while traveling, so that your mail will
357remain on the server and you can save it later on your workstation.
358
359 In some cases, Rmail copies the new mail from the inbox file
360indirectly. First it runs the @code{movemail} program to move the mail
361from the inbox to an intermediate file called
362@file{~/.newmail-@var{inboxname}}. Then Rmail merges the new mail from
363that file, saves the Rmail file, and only then deletes the intermediate
364file. If there is a crash at the wrong time, this file continues to
365exist, and Rmail will use it again the next time it gets new mail from
366that inbox.
367
368 If Rmail is unable to convert the data in
369@file{~/.newmail-@var{inboxname}} into Babyl format, it renames the file
370to @file{~/RMAILOSE.@var{n}} (@var{n} is an integer chosen to make the
371name unique) so that Rmail will not have trouble with the data again.
372You should look at the file, find whatever message confuses Rmail
373(probably one that includes the control-underscore character, octal code
374037), and delete it. Then you can use @kbd{1 g} to get new mail from
375the corrected file.
376
347@node Rmail Files 377@node Rmail Files
348@section Multiple Rmail Files 378@section Multiple Rmail Files
349 379
@@ -1003,8 +1033,9 @@ turn off highlighting entirely in Rmail, set
1003 You can highlight and activate URLs in incoming messages by adding 1033 You can highlight and activate URLs in incoming messages by adding
1004the function @code{goto-address} to the hook 1034the function @code{goto-address} to the hook
1005@code{rmail-show-message-hook}. Then you can browse these URLs by 1035@code{rmail-show-message-hook}. Then you can browse these URLs by
1006clicking on them with @kbd{Mouse-2} or by moving to one and typing 1036clicking on them with @kbd{Mouse-2} (or @kbd{Mouse-1} quickly) or by
1007@kbd{C-c @key{RET}}. @xref{Goto-address, Activating URLs, Activating URLs}. 1037moving to one and typing @kbd{C-c @key{RET}}. @xref{Goto-address,
1038Activating URLs, Activating URLs}.
1008 1039
1009@node Rmail Coding 1040@node Rmail Coding
1010@section Rmail and Coding Systems 1041@section Rmail and Coding Systems
@@ -1158,30 +1189,27 @@ which applies the code when displaying the text.
1158@section @code{movemail} program 1189@section @code{movemail} program
1159@cindex @code{movemail} program 1190@cindex @code{movemail} program
1160 1191
1161 When invoked for the first time, Rmail attempts to locate 1192 When invoked for the first time, Rmail attempts to locate the
1162@code{movemail} program and determine its version. There are 1193@code{movemail} program and determine its version. There are two
1163two versions of @code{movemail} program: the native one, shipped with 1194versions of @code{movemail} program: the native one, shipped with GNU
1164GNU Emacs (we will refer to it as @samp{emacs version}) and the one 1195Emacs (the ``emacs version'') and the one included in GNU mailutils
1165coming from GNU mailutils (@xref{movemail,,,mailutils,GNU mailutils}, 1196(the ``mailutils version'', @[xref{movemail,,,mailutils,GNU
1166we will refer to it as @samp{mailutils version}). Both versions are 1197mailutils}). They support the same command line syntax and the same
1167compatible with each other in the sense that they support the same 1198basic subset of options. However, the @samp{mailutils} version offers
1168command line syntax and the same basic subset of options. However, 1199additional features.
1169the @samp{mailutils} version offers a much richer set of
1170features.
1171
1172The @samp{Emacs version} of @code{movemail} is able to retrieve mail from usual
1173UNIX mailbox formats and from remote mailboxes using the POP3 protocol.
1174
1175The @samp{Mailutils version} is able to handle a wide set of mailbox
1176formats, such as plain UNIX mailboxes, @code{maildir} and @code{MH}
1177mailboxes, etc. It is able to retrieve remote mail using POP3 or IMAP4
1178protocol. In the latter case, @code{mailutils movemail} can be
1179instructed to retrieve mail using a TLS encrypted channel.
1180 1200
1181The @samp{Mailutils movemail} accepts mailbox argument in the @acronym{URL} 1201 The Emacs version of @code{movemail} is able to retrieve mail from
1182form. The detailed description of mailbox @acronym{URL}s can be found 1202usual UNIX mailbox formats and from remote mailboxes using the POP3
1183in @ref{URL,,,mailutils,Mailbox URL Formats}. In short, a 1203protocol.
1184@acronym{URL} is: 1204
1205 The Mailutils version is able to handle a wide set of mailbox
1206formats, such as plain UNIX mailboxes, @code{maildir} and @code{MH}
1207mailboxes, etc. It is able to retrieve remote mail using POP3 or
1208IMAP4 protocol, and can retrieve mail from them using a TLS encrypted
1209channel. It also accepts mailbox argument in the @acronym{URL} form.
1210The detailed description of mailbox @acronym{URL}s can be found in
1211@ref{URL,,,mailutils,Mailbox URL Formats}. In short, a @acronym{URL}
1212is:
1185 1213
1186@smallexample 1214@smallexample
1187@var{proto}://[@var{user}[:@var{password}]@@]@var{host-or-file-name} 1215@var{proto}://[@var{user}[:@var{password}]@@]@var{host-or-file-name}
@@ -1244,55 +1272,26 @@ address of the remote mail server to connect to;
1244e.g., @code{imap://smith:guessme@@remote.server.net}. 1272e.g., @code{imap://smith:guessme@@remote.server.net}.
1245@end table 1273@end table
1246 1274
1247Alternatively, the mailbox may be specified as a file name of the 1275 Alternatively, you can specify the file name of the mailbox to use.
1248mailbox to use. This is equivalent to specifying the @samp{file} protocol: 1276This is equivalent to specifying the @samp{file} protocol:
1249 1277
1250@smallexample 1278@smallexample
1251/var/spool/mail/user @equiv{} file://var/spool/mail/user 1279/var/spool/mail/@var{user} @equiv{} file://var/spool/mail/@var{user}
1252@end smallexample 1280@end smallexample
1253 1281
1254@vindex rmail-movemail-program 1282@vindex rmail-movemail-program
1255@vindex rmail-movemail-search-path 1283@vindex rmail-movemail-search-path
1256 To determine which version of @code{movemail} is being used, Rmail 1284 The variable @code{rmail-movemail-program} controls which version of
1257examines the value of @code{rmail-movemail-program} variable. If it 1285@code{movemail} to use. If that is a string, it specifies the
1258is set, its value is used as a full path to the @code{movemail} binary. 1286absolute file name of the @code{movemail} executable. If it is
1259Otherwise, Rmail searches for @code{movemail} in the list of directories 1287@code{nil}, Rmail searches for @code{movemail} in the directories
1260constructed by appending the values of @code{rmail-movemail-search-path} and 1288listed in @code{rmail-movemail-search-path} and @code{exec-path}, then
1261@code{exec-path} to @code{exec-directory}. 1289in @code{exec-directory}.
1262 1290
1263@node Remote Mailboxes 1291@node Remote Mailboxes
1264@section Retrieving Mail from Remote Mailboxes 1292@section Retrieving Mail from Remote Mailboxes
1265@pindex movemail 1293@pindex movemail
1266 1294
1267@vindex rmail-preserve-inbox
1268 When getting new mail, Rmail first copies the new mail from the inbox
1269file to the Rmail file; then it saves the Rmail file; then it truncates
1270the inbox file. This way, a system crash may cause duplication of mail
1271between the inbox and the Rmail file, but cannot lose mail. If
1272@code{rmail-preserve-inbox} is non-@code{nil}, then Rmail will copy new
1273mail from the inbox file to the Rmail file without truncating the inbox
1274file. You may wish to set this, for example, on a portable computer you
1275use to check your mail via POP while traveling, so that your mail will
1276remain on the server and you can save it later on your workstation.
1277
1278 In some cases, Rmail copies the new mail from the inbox file
1279indirectly. First it runs the @code{movemail} program to move the mail
1280from the inbox to an intermediate file called
1281@file{~/.newmail-@var{inboxname}}. Then Rmail merges the new mail from
1282that file, saves the Rmail file, and only then deletes the intermediate
1283file. If there is a crash at the wrong time, this file continues to
1284exist, and Rmail will use it again the next time it gets new mail from
1285that inbox.
1286
1287 If Rmail is unable to convert the data in
1288@file{~/.newmail-@var{inboxname}} into Babyl format, it renames the file
1289to @file{~/RMAILOSE.@var{n}} (@var{n} is an integer chosen to make the
1290name unique) so that Rmail will not have trouble with the data again.
1291You should look at the file, find whatever message confuses Rmail
1292(probably one that includes the control-underscore character, octal code
1293037), and delete it. Then you can use @kbd{1 g} to get new mail from
1294the corrected file.
1295
1296 Some sites use a method called POP for accessing users' inbox data 1295 Some sites use a method called POP for accessing users' inbox data
1297instead of storing the data in inbox files. The @code{Emacs 1296instead of storing the data in inbox files. The @code{Emacs
1298movemail} can work with POP if you compile it with the macro 1297movemail} can work with POP if you compile it with the macro
diff --git a/man/sending.texi b/man/sending.texi
index bb1ac2864ac..fb00f80a683 100644
--- a/man/sending.texi
+++ b/man/sending.texi
@@ -45,7 +45,7 @@ switch to other buffers while in the middle of composing mail, and switch
45back later (or never). If you use the @kbd{C-x m} command again when you 45back later (or never). If you use the @kbd{C-x m} command again when you
46have been composing another message but have not sent it, you are asked to 46have been composing another message but have not sent it, you are asked to
47confirm before the old message is erased. If you answer @kbd{n}, the 47confirm before the old message is erased. If you answer @kbd{n}, the
48@samp{*mail*} buffer is left selected with its old contents, so you can 48@samp{*mail*} buffer remains selected with its old contents, so you can
49finish the old message and send it. @kbd{C-u C-x m} is another way to do 49finish the old message and send it. @kbd{C-u C-x m} is another way to do
50this. Sending the message marks the @samp{*mail*} buffer ``unmodified,'' 50this. Sending the message marks the @samp{*mail*} buffer ``unmodified,''
51which avoids the need for confirmation when @kbd{C-x m} is next used. 51which avoids the need for confirmation when @kbd{C-x m} is next used.
@@ -289,7 +289,21 @@ this line:@refill
289alias maingnu gnu@@gnu.org local-gnu 289alias maingnu gnu@@gnu.org local-gnu
290@end example 290@end example
291 291
292 Emacs also recognizes include commands in @samp{.mailrc} files. 292@noindent
293Addresses specified in this way should use doublequotes around an
294entire address when the address contains spaces. But you need not
295include doublequotes around parts of the address, such as the person's
296full name. Emacs puts them in if they are needed. For example,
297
298@example
299alias chief-torturer "George W. Bush <bush@whitehouse.gov>"
300@end example
301
302@noindent
303is correct. Emacs will insert the address as @samp{"George W. Bush"
304<bush@whitehouse.gov>}.
305
306 Emacs also recognizes ``include'' commands in @samp{.mailrc} files.
293They look like this: 307They look like this:
294 308
295@example 309@example
@@ -363,12 +377,10 @@ expansion as well. Here's how to do that:
363@smallexample 377@smallexample
364(add-hook 'mail-mode-hook 378(add-hook 'mail-mode-hook
365 (lambda () 379 (lambda ()
366 (substitute-key-definition 380 (define-key
367 'next-line 'mail-abbrev-next-line 381 mail-mode-map [remap next-line] 'mail-abbrev-next-line)
368 mail-mode-map global-map) 382 (define-key
369 (substitute-key-definition 383 mail-mode-map [remap end-of-buffer] 'mail-abbrev-end-of-buffer)))
370 'end-of-buffer 'mail-abbrev-end-of-buffer
371 mail-mode-map global-map)))
372@end smallexample 384@end smallexample
373 385
374@node Mail Mode 386@node Mail Mode
@@ -503,8 +515,8 @@ inserts the full name corresponding to the address, if it can
503determine the full name. The variable @code{mail-complete-style} 515determine the full name. The variable @code{mail-complete-style}
504controls whether to insert the full name, and what style to use, as in 516controls whether to insert the full name, and what style to use, as in
505@code{mail-from-style} (@pxref{Mail Headers}). (If your window 517@code{mail-from-style} (@pxref{Mail Headers}). (If your window
506manager defines @kbd{M-@key{TAB}} to switch windows, you can type this 518manager defines @kbd{M-@key{TAB}} to switch windows, you can type
507Emacs command as @kbd{@key{ESC} @key{TAB}}.) 519@kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}.)
508 520
509 For completion purposes, the valid mailing addresses are taken to be 521 For completion purposes, the valid mailing addresses are taken to be
510the local users' names plus your personal mail aliases. You can 522the local users' names plus your personal mail aliases. You can
@@ -626,7 +638,8 @@ the usual command to insert a file in the current buffer. But it is
626often more convenient to use a special command, @kbd{C-c C-i} 638often more convenient to use a special command, @kbd{C-c C-i}
627(@code{mail-attach-file}). This command inserts the file contents at 639(@code{mail-attach-file}). This command inserts the file contents at
628the end of the buffer, after your signature if any, with a delimiter 640the end of the buffer, after your signature if any, with a delimiter
629line that includes the file name. 641line that includes the file name. Note that this is not a MIME
642attachment.
630 643
631@vindex mail-mode-hook 644@vindex mail-mode-hook
632@vindex mail-setup-hook 645@vindex mail-setup-hook
diff --git a/man/text.texi b/man/text.texi
index 7b262e11abe..4b15eff4f12 100644
--- a/man/text.texi
+++ b/man/text.texi
@@ -857,7 +857,7 @@ as the command @code{ispell-complete-word}, which performs completion
857of the partial word in the buffer before point, using the spelling 857of the partial word in the buffer before point, using the spelling
858dictionary as the space of possible words. @xref{Spelling}. If your 858dictionary as the space of possible words. @xref{Spelling}. If your
859window manager defines @kbd{M-@key{TAB}} to switch windows, you can 859window manager defines @kbd{M-@key{TAB}} to switch windows, you can
860type this Emacs command as @kbd{@key{ESC} @key{TAB}}. 860type @kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}.
861 861
862@vindex text-mode-hook 862@vindex text-mode-hook
863 Entering Text mode runs the hook @code{text-mode-hook}. Other major 863 Entering Text mode runs the hook @code{text-mode-hook}. Other major
diff --git a/man/url.texi b/man/url.texi
index f5c15e2dff5..aa4188b196f 100644
--- a/man/url.texi
+++ b/man/url.texi
@@ -327,10 +327,10 @@ can be served in more than one encoding.
327 327
328HTTP allows specifying a list of MIME charsets which indicate your 328HTTP allows specifying a list of MIME charsets which indicate your
329preferred character set encodings, e.g.@: Latin-9 or Big5, and these 329preferred character set encodings, e.g.@: Latin-9 or Big5, and these
330can be weighted. In Emacs 21 this list is generated automatically 330can be weighted. This list is generated automatically from the list
331from the list of defined coding systems which have associated MIME 331of defined coding systems which have associated MIME types. These are
332types. These are sorted by coding priority. @xref{Recognize Coding, 332sorted by coding priority. @xref{Recognize Coding, , Recognizing
333, Recognizing Coding Systems, emacs, The GNU Emacs Manual}. 333Coding Systems, emacs, The GNU Emacs Manual}.
334@end defopt 334@end defopt
335 335
336@defopt url-mime-language-string 336@defopt url-mime-language-string
diff --git a/man/woman.texi b/man/woman.texi
index 108225dbbf6..fdcc8901339 100644
--- a/man/woman.texi
+++ b/man/woman.texi
@@ -117,9 +117,10 @@ version of Emacs. It was developed primarily on various versions of
117Microsoft Windows, but has also been tested on MS-DOS, and various 117Microsoft Windows, but has also been tested on MS-DOS, and various
118versions of UNIX and GNU/Linux. 118versions of UNIX and GNU/Linux.
119 119
120WoMan is distributed with GNU Emacs 21, and the current source code and 120WoMan is distributed with GNU Emacs. In addition, the current source
121documentation files are available from 121code and documentation files are available from
122@uref{http://centaur.maths.qmw.ac.uk/Emacs/WoMan/, my web server}. 122@uref{http://centaur.maths.qmw.ac.uk/Emacs/WoMan/, the WoMan web
123server}.
123 124
124WoMan implements a subset of the formatting performed by the Emacs 125WoMan implements a subset of the formatting performed by the Emacs
125@code{man} (or @code{manual-entry}) command to format a Unix-style 126@code{man} (or @code{manual-entry}) command to format a Unix-style
diff --git a/src/ChangeLog b/src/ChangeLog
index dc48d647216..fc2ded6ce94 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,15 @@
12005-03-06 Richard M. Stallman <rms@gnu.org>
2
3 * keyboard.c (Ftop_level): Let Fthrow deal with UNBLOCK_INPUT.
4
5 * eval.c (unwind_to_catch): Use UNBLOCK_INPUT_TO.
6 (Feval, Ffuncall): Use CHECK_CONS_LIST.
7
8 * lisp.h (CHECK_CONS_LIST): New macro (two definitions).
9
10 * blockinput.h (UNBLOCK_INPUT_TO): New macro.
11 (TOTALLY_UNBLOCK_INPUT): Handle a pending signal if any.
12
12005-03-05 Juri Linkov <juri@jurta.org> 132005-03-05 Juri Linkov <juri@jurta.org>
2 14
3 * emacs.c (USAGE1): Replace Info node name "command arguments" 15 * emacs.c (USAGE1): Replace Info node name "command arguments"
@@ -107,6 +119,11 @@
107 119
108 * keyboard.c (Fposn_at_x_y): Check integerness of X and Y. 120 * keyboard.c (Fposn_at_x_y): Check integerness of X and Y.
109 121
1222005-02-27 Richard M. Stallman <rms@gnu.org>
123
124 * xdisp.c (fast_find_position): Rename END to BEG.
125 (syms_of_xdisp) <menu-bar-update-hook>: Doc fix.
126
1102005-02-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 1272005-02-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
111 128
112 * gtkutil.c (xg_resize_outer_widget): Remove unneeded call to 129 * gtkutil.c (xg_resize_outer_widget): Remove unneeded call to
diff --git a/src/blockinput.h b/src/blockinput.h
index a4c8a9b9c22..a3b50d2a0f2 100644
--- a/src/blockinput.h
+++ b/src/blockinput.h
@@ -94,7 +94,30 @@ extern int pending_atimers;
94 } \ 94 } \
95 while (0) 95 while (0)
96 96
97#define TOTALLY_UNBLOCK_INPUT (interrupt_input_blocked = 0) 97/* Undo any number of BLOCK_INPUT calls,
98 and also reinvoke any pending signal. */
99
100#define TOTALLY_UNBLOCK_INPUT \
101 if (interrupt_input_blocked != 0) \
102 { \
103 interrupt_input_blocked = 1; \
104 UNBLOCK_INPUT; \
105 } \
106 else
107
108/* Undo any number of BLOCK_INPUT calls down to level LEVEL,
109 and also (if the level is now 0) reinvoke any pending signal. */
110
111#define UNBLOCK_INPUT_TO(LEVEL) \
112 do \
113 { \
114 int oldlevel = interrupt_input_blocked; \
115 interrupt_input_blocked = (LEVEL) + 1; \
116 if (interrupt_input_blocked != oldlevel + 1) \
117 UNBLOCK_INPUT; \
118 } \
119 while (0)
120
98#define UNBLOCK_INPUT_RESIGNAL UNBLOCK_INPUT 121#define UNBLOCK_INPUT_RESIGNAL UNBLOCK_INPUT
99 122
100/* In critical section ? */ 123/* In critical section ? */
diff --git a/src/eval.c b/src/eval.c
index 83e16360473..bf4fec4f8a1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1176,7 +1176,7 @@ unwind_to_catch (catch, value)
1176 1176
1177 /* Restore certain special C variables. */ 1177 /* Restore certain special C variables. */
1178 set_poll_suppress_count (catch->poll_suppress_count); 1178 set_poll_suppress_count (catch->poll_suppress_count);
1179 interrupt_input_blocked = catch->interrupt_input_blocked; 1179 UNBLOCK_INPUT_TO (catch->interrupt_input_blocked);
1180 handling_signal = 0; 1180 handling_signal = 0;
1181 immediate_quit = 0; 1181 immediate_quit = 0;
1182 1182
@@ -2067,6 +2067,8 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0,
2067 args_left = original_args; 2067 args_left = original_args;
2068 numargs = Flength (args_left); 2068 numargs = Flength (args_left);
2069 2069
2070 CHECK_CONS_LIST ();
2071
2070 if (XINT (numargs) < XSUBR (fun)->min_args || 2072 if (XINT (numargs) < XSUBR (fun)->min_args ||
2071 (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < XINT (numargs))) 2073 (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < XINT (numargs)))
2072 return Fsignal (Qwrong_number_of_arguments, Fcons (fun, Fcons (numargs, Qnil))); 2074 return Fsignal (Qwrong_number_of_arguments, Fcons (fun, Fcons (numargs, Qnil)));
@@ -2190,6 +2192,8 @@ DEFUN ("eval", Feval, Seval, 1, 1, 0,
2190 return Fsignal (Qinvalid_function, Fcons (fun, Qnil)); 2192 return Fsignal (Qinvalid_function, Fcons (fun, Qnil));
2191 } 2193 }
2192 done: 2194 done:
2195 CHECK_CONS_LIST ();
2196
2193 lisp_eval_depth--; 2197 lisp_eval_depth--;
2194 if (backtrace.debug_on_exit) 2198 if (backtrace.debug_on_exit)
2195 val = call_debugger (Fcons (Qexit, Fcons (val, Qnil))); 2199 val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
@@ -2746,6 +2750,8 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
2746 2750
2747 if (SUBRP (fun)) 2751 if (SUBRP (fun))
2748 { 2752 {
2753 CHECK_CONS_LIST ();
2754
2749 if (numargs < XSUBR (fun)->min_args 2755 if (numargs < XSUBR (fun)->min_args
2750 || (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < numargs)) 2756 || (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < numargs))
2751 { 2757 {
@@ -2844,6 +2850,7 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */)
2844 return Fsignal (Qinvalid_function, Fcons (fun, Qnil)); 2850 return Fsignal (Qinvalid_function, Fcons (fun, Qnil));
2845 } 2851 }
2846 done: 2852 done:
2853 CHECK_CONS_LIST ();
2847 lisp_eval_depth--; 2854 lisp_eval_depth--;
2848 if (backtrace.debug_on_exit) 2855 if (backtrace.debug_on_exit)
2849 val = call_debugger (Fcons (Qexit, Fcons (val, Qnil))); 2856 val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
diff --git a/src/keyboard.c b/src/keyboard.c
index 3da16b82271..3fa6240381e 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1335,11 +1335,6 @@ DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, "",
1335 cancel_hourglass (); 1335 cancel_hourglass ();
1336#endif 1336#endif
1337 1337
1338 /* Unblock input if we enter with input blocked. This may happen if
1339 redisplay traps e.g. during tool-bar update with input blocked. */
1340 while (INPUT_BLOCKED_P)
1341 UNBLOCK_INPUT;
1342
1343 return Fthrow (Qtop_level, Qnil); 1338 return Fthrow (Qtop_level, Qnil);
1344} 1339}
1345 1340
diff --git a/src/lisp.h b/src/lisp.h
index cff80f1d090..f677eee0953 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -53,6 +53,11 @@ Boston, MA 02111-1307, USA. */
53 53
54#endif /* 0 */ 54#endif /* 0 */
55 55
56#ifdef GC_CHECK_CONS_LIST
57#define CHECK_CONS_LIST() check_cons_list()
58#else
59#define CHECK_CONS_LIST() 0
60#endif
56 61
57/* These are default choices for the types to use. */ 62/* These are default choices for the types to use. */
58#ifdef _LP64 63#ifdef _LP64