aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2006-12-03 12:15:03 +0000
committerKaroly Lorentey2006-12-03 12:15:03 +0000
commit14bcc1e098410087a837313e2fc822319ff2e8ca (patch)
treee468aebbb8d84438d81eb08bf6b77bfeaf664ea7
parent5665a02fd1d009506f246d5f77896e3995127954 (diff)
parent704ec54b3f2a40026ea7835b76e040c7335a56c1 (diff)
downloademacs-14bcc1e098410087a837313e2fc822319ff2e8ca.tar.gz
emacs-14bcc1e098410087a837313e2fc822319ff2e8ca.zip
Merged from emacs@sv.gnu.org.
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-474 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-475 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-476 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-477 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-478 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-150 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-151 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-152 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-584
-rw-r--r--admin/ChangeLog4
-rw-r--r--admin/FOR-RELEASE11
-rw-r--r--admin/admin.el42
-rw-r--r--lisp/ChangeLog104
-rw-r--r--lisp/dired-aux.el5
-rw-r--r--lisp/emacs-lisp/pp.el17
-rw-r--r--lisp/facemenu.el3
-rw-r--r--lisp/filesets.el4
-rw-r--r--lisp/gnus/ChangeLog20
-rw-r--r--lisp/gnus/gmm-utils.el15
-rw-r--r--lisp/gnus/mm-util.el16
-rw-r--r--lisp/gnus/mm-uu.el2
-rw-r--r--lisp/gnus/nnmaildir.el11
-rw-r--r--lisp/help-fns.el63
-rw-r--r--lisp/ido.el4
-rw-r--r--lisp/mail/smtpmail.el11
-rw-r--r--lisp/progmodes/ada-mode.el38
-rw-r--r--lisp/progmodes/ada-xref.el8
-rw-r--r--lisp/progmodes/flymake.el4
-rw-r--r--lisp/recentf.el4
-rw-r--r--lisp/shell.el4
-rw-r--r--lisp/simple.el20
-rw-r--r--lisp/subr.el6
-rw-r--r--lisp/term/x-win.el9
-rw-r--r--lisp/textmodes/flyspell.el2
-rw-r--r--lisp/textmodes/table.el1
-rw-r--r--lisp/url/ChangeLog5
-rw-r--r--lisp/url/url-http.el4
-rw-r--r--lisp/woman.el6
-rw-r--r--lispref/ChangeLog39
-rw-r--r--lispref/commands.texi18
-rw-r--r--lispref/control.texi2
-rw-r--r--lispref/edebug.texi6
-rw-r--r--lispref/elisp.texi4
-rw-r--r--lispref/help.texi10
-rw-r--r--lispref/keymaps.texi32
-rw-r--r--lispref/modes.texi3
-rw-r--r--man/ChangeLog13
-rw-r--r--man/emacs.texi2
-rw-r--r--man/gnus.texi5
-rw-r--r--man/widget.texi129
-rw-r--r--src/ChangeLog23
-rw-r--r--src/dispnew.c29
-rw-r--r--src/gtkutil.c18
-rw-r--r--src/mac.c10
-rw-r--r--src/macterm.c10
-rw-r--r--src/sysdep.c10
47 files changed, 565 insertions, 241 deletions
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 7b32f0a985f..ea3016b07ee 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,7 @@
12006-10-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * admin.el (set-version): Set version numbers in "mac" subdirectory.
4
12006-10-03 Kenichi Handa <handa@m17n.org> 52006-10-03 Kenichi Handa <handa@m17n.org>
2 6
3 * FOR-RELEASE (BUGS): "An iso-8859-6 cannot be saved" fixed. 7 * FOR-RELEASE (BUGS): "An iso-8859-6 cannot be saved" fixed.
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index aef0773b89d..68fb5c8d09b 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -43,8 +43,15 @@ to the hack introduced on 2005-07-01 to fix some other Cleartype problem.
43 43
44* BUGS 44* BUGS
45 45
46** hashiz@tomba.meridiani.jp, Oct 6: bootstrap failure on FreeBSD 6.2 46** Monnier, Oct 15: Strange behavior of C-u in the presence of sit-for in p-c-h
47Can't be reproduced on GNU/Linux. 47
48** miyoshi@meadowy.org, Oct 16: Emacs allocates unnecessary memory
49
50** david.reitter@gmail.com, Oct 16: url-retrieve may cause hang
51
52** id.brep@gmail.com, Oct 17: `.newsrc.eld' saves chinese group name in wrong coding
53
54** bojohan+mail@dd.chalmers.se, Oct 17: Formatting `interactive' strings.
48 55
49* DOCUMENTATION 56* DOCUMENTATION
50 57
diff --git a/admin/admin.el b/admin/admin.el
index 2f7f085b9d9..6cd090c0805 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -97,12 +97,12 @@ Root must be the root of an Emacs source tree."
97 (comma-version 97 (comma-version
98 (concat (car version-components) "," 98 (concat (car version-components) ","
99 (cadr version-components) "," 99 (cadr version-components) ","
100 (cadr (cdr version-components)) "," 100 (cadr (cdr version-components)) ","
101 (cadr (cdr (cdr version-components))))) 101 (cadr (cdr (cdr version-components)))))
102 (comma-space-version 102 (comma-space-version
103 (concat (car version-components) ", " 103 (concat (car version-components) ", "
104 (cadr version-components) ", " 104 (cadr version-components) ", "
105 (cadr (cdr version-components)) ", " 105 (cadr (cdr version-components)) ", "
106 (cadr (cdr (cdr version-components)))))) 106 (cadr (cdr (cdr version-components))))))
107 (set-version-in-file root "nt/emacs.rc" comma-version 107 (set-version-in-file root "nt/emacs.rc" comma-version
108 (rx (and "FILEVERSION" (1+ space) 108 (rx (and "FILEVERSION" (1+ space)
@@ -116,7 +116,43 @@ Root must be the root of an Emacs source tree."
116 (set-version-in-file root "nt/emacs.rc" comma-space-version 116 (set-version-in-file root "nt/emacs.rc" comma-space-version
117 (rx (and "\"ProductVersion\"" (0+ space) ?, 117 (rx (and "\"ProductVersion\"" (0+ space) ?,
118 (0+ space) ?\" (submatch (1+ (in "0-9, "))) 118 (0+ space) ?\" (submatch (1+ (in "0-9, ")))
119 "\\0\""))))) 119 "\\0\"")))
120 ;; Some files in the "mac" subdirectory also contain the version
121 ;; number.
122 (set-version-in-file
123 root "mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings"
124 version (rx (and "CFBundleShortVersionString" (0+ space) ?= (0+ space) ?\"
125 (submatch (1+ (in "0-9."))))))
126 (set-version-in-file
127 root "mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings"
128 version (rx (and "CFBundleGetInfoString" (0+ space) ?= (0+ space) ?\"
129 (submatch (1+ (in "0-9."))))))
130 (set-version-in-file root "mac/src/Emacs.r" (car version-components)
131 (rx (and "GNU Emacs " (submatch (1+ (in "0-9")))
132 " for Mac OS")))
133 (set-version-in-file root "mac/src/Emacs.r" (car version-components)
134 (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\,
135 (0+ space) "/* Major revision in BCD */")))
136 (set-version-in-file root "mac/src/Emacs.r" (cadr version-components)
137 (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\,
138 (0+ space) "/* Minor revision in BCD */")))
139 (set-version-in-file root "mac/src/Emacs.r" (cadr (cdr version-components))
140 (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\,
141 (0+ space) "/* Non-final release # */")))
142 (set-version-in-file root "mac/src/Emacs.r" version
143 (rx (and (submatch (1+ (in "0-9."))) (0+ space) ?\" ?\,
144 (0+ space) "/* Short version number */")))
145 (set-version-in-file root "mac/src/Emacs.r" version
146 (rx (and "/* Short version number */" (0+ space) ?\"
147 (submatch (1+ (in "0-9."))))))
148 (let* ((third-component (string-to-number (cadr (cdr version-components))))
149 (release (cond ((>= third-component 90) "alpha")
150 ((>= third-component 50) "development")
151 (t "final"))))
152 (set-version-in-file
153 root "mac/src/Emacs.r" release
154 (rx (and (submatch (1+ (in "a-z"))) (0+ space) ?\, (0+ space)
155 "/* development, alpha, beta, or final (release) */"))))))
120 156
121;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5 157;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5
122;; admin.el ends here. 158;; admin.el ends here.
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8dd343fc8ee..89a00314048 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,12 +1,97 @@
12006-10-18 Juanma Barranquero <lekktu@gmail.com>
2
3 * progmodes/ada-mode.el (ada-83-string-keywords)
4 (ada-last-which-function-line ada-no-auto-case, ada-indent-region)
5 (ada-which-compiler, ada-align-modes, ada-adjust-case-buffer)
6 (ada-looking-at-semi-private, ada-get-body-name):
7 Fix typos in docstrings.
8 (ada-create-case-exception, ada-create-case-exception-substring):
9 Fix typos in error messages.
10 (ada-goto-matching-end, ada-narrow-to-defun): Doc fixes.
11
122006-10-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
13
14 * term/x-win.el (res-geometry): Don't set geometry from Xresources
15 to default-frame-alist if default-frame-alist already contains
16 width/height.
17
182006-10-18 Richard Stallman <rms@gnu.org>
19
20 * emacs-lisp/pp.el (pp-eval-expression): Use `X' to read value.
21 Non-interactive arg is the value, not the expression.
22
23 * simple.el (read-expression-map): Just set it, no defvar.
24
25 * subr.el (insert-for-yank-1): If last inserted char has
26 properties, mark them as rear-nonsticky.
27
28 * recentf.el (recentf-mode): Doc fix.
29
30 * facemenu.el (facemenu-add-new-face): Defend against symbol
31 that isn't a face name.
32
33 * dired-aux.el (dired-do-copy): Doc fix.
34
352006-10-18 Chong Yidong <cyd@stupidchicken.com>
36
37 * simple.el (line-move-1): Ignore fields when moving to the
38 beginning of line to avoid getting point stuck.
39
402006-10-18 Martin Rudalics <rudalics@gmx.at>
41
42 * textmodes/flyspell.el (flyspell-word-search-backward): Set
43 inhibit-point-motion-hooks to avoid looping due to intangibile
44 text.
45
462006-10-16 Richard Stallman <rms@gnu.org>
47
48 * help-fns.el (describe-function-1): Special case optimization
49 for self-insert-command.
50
512006-10-16 Kim F. Storm <storm@cua.dk>
52
53 * ido.el (ido-reread-directory): Work in `dir' mode too.
54
552006-10-15 Martin Rudalics <rudalics@gmx.at>
56
57 * textmodes/table.el: Require 'regexp-opt.
58
592006-10-15 Lennart Borgman <lennart.borgman.073@student.lu.se>
60
61 * progmodes/flymake.el (flymake-get-project-include-dirs-imp):
62 Use shell-quote-argument.
63
64 * shell.el (explicit-bash-args): Likewise.
65
66 * progmodes/ada-xref.el (ada-find-in-src-path): Likewise.
67 Use grep -E rather than egrep.
68
692006-10-15 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org>
70
71 * ido.el (ido-exhibit): Allow `-', `_', and trailing `$' in user id.
72
732006-10-15 Kim F. Storm <storm@cua.dk>
74
75 * filesets.el (filesets-run-cmd--repl-fn): Use shell-quote-argument.
76
772006-10-14 Lennart Borgman <lennart.borgman.073@student.lu.se>
78
79 * filesets.el (filesets-cmd-shell-command): Quote buffer-file-name
80 to protect whitespace and metacharacters from the shell.
81
12006-10-13 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change) 822006-10-13 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
2 83
3 * apropos.el (apropos-pattern-quoted): Fix a typo in a doc 84 * apropos.el (apropos-pattern-quoted): Fix a typo in a doc string.
4 string.
5 85
62006-10-13 Eli Zaretskii <eliz@gnu.org> 862006-10-13 Eli Zaretskii <eliz@gnu.org>
7 87
8 * subr.el (start-process-shell-command): Doc fix. 88 * subr.el (start-process-shell-command): Doc fix.
9 89
902006-10-13 Andrea Russo <rastandy@salug.it> (tiny change)
91
92 * info-look.el <maxima-mode, inferior-maxima-mode>: Allow [0-9] in
93 the regexp for Maxima symbols.
94
102006-10-13 Stefan Monnier <monnier@iro.umontreal.ca> 952006-10-13 Stefan Monnier <monnier@iro.umontreal.ca>
11 96
12 * vc-hooks.el (vc-ignore-dir-regexp): Make it into a defcustom. 97 * vc-hooks.el (vc-ignore-dir-regexp): Make it into a defcustom.
@@ -19,8 +104,13 @@
19 104
202006-10-12 Carsten Dominik <dominik@science.uva.nl> 1052006-10-12 Carsten Dominik <dominik@science.uva.nl>
21 106
22 * textmodes/reftex-global.el (reftex-create-tags-file): Quote file 107 * textmodes/reftex-global.el (reftex-create-tags-file):
23 arguments. 108 Quote file arguments.
109
1102006-10-12 Richard Stallman <rms@gnu.org>
111
112 * files.el (file-name-history): Add defvar.
113 (save-some-buffers-action-alist): Improve description strings.
24 114
252006-10-12 Andreas Schwab <schwab@suse.de> 1152006-10-12 Andreas Schwab <schwab@suse.de>
26 116
@@ -380,7 +470,7 @@
380 was inverted; 470 was inverted;
381 Support `comment-column' = 0. 471 Support `comment-column' = 0.
382 472
3832006-10-11 Martin Rudalics <rudalics@gmx.at> 4732006-10-11 Martin Rudalics <rudalics@gmx.at>
384 474
385 * dnd.el (dnd-handle-one-url): Fix typo in doc-string. 475 * dnd.el (dnd-handle-one-url): Fix typo in doc-string.
386 * help-at-pt.el (scan-buf-move-to-region): Likewise. 476 * help-at-pt.el (scan-buf-move-to-region): Likewise.
@@ -424,8 +514,8 @@
424 514
4252006-10-08 Nick Roberts <nickrob@snap.net.nz> 5152006-10-08 Nick Roberts <nickrob@snap.net.nz>
426 516
427 * progmodes/gdb-ui.el (gdb-speedbar-expand-node): Burp if 517 * progmodes/gdb-ui.el (gdb-speedbar-expand-node):
428 GUD buffer has been killed. 518 Burp if GUD buffer has been killed.
429 519
4302006-10-07 Stefan Monnier <monnier@iro.umontreal.ca> 5202006-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
431 521
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 6082fc180dc..769d98c9530 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1560,7 +1560,10 @@ When operating on multiple or marked files, you specify a directory,
1560and new copies of these files are made in that directory 1560and new copies of these files are made in that directory
1561with the same names that the files currently have. The default 1561with the same names that the files currently have. The default
1562suggested for the target directory depends on the value of 1562suggested for the target directory depends on the value of
1563`dired-dwim-target', which see." 1563`dired-dwim-target', which see.
1564
1565This command copies symbolic links by creating new ones,
1566like `cp -d'."
1564 (interactive "P") 1567 (interactive "P")
1565 (let ((dired-recursive-copies dired-recursive-copies)) 1568 (let ((dired-recursive-copies dired-recursive-copies))
1566 (dired-do-create-files 'copy (function dired-copy-file) 1569 (dired-do-create-files 'copy (function dired-copy-file)
diff --git a/lisp/emacs-lisp/pp.el b/lisp/emacs-lisp/pp.el
index f30b69ddac0..a9cb2abd741 100644
--- a/lisp/emacs-lisp/pp.el
+++ b/lisp/emacs-lisp/pp.el
@@ -97,13 +97,16 @@ Output stream is STREAM, or value of `standard-output' (which see)."
97 (princ (pp-to-string object) (or stream standard-output))) 97 (princ (pp-to-string object) (or stream standard-output)))
98 98
99;;;###autoload 99;;;###autoload
100(defun pp-eval-expression (expression) 100(defun pp-eval-expression (expval)
101 "Evaluate EXPRESSION and pretty-print value into a new display buffer. 101 "Evaluate an expression, then pretty-print value EXPVAL into a new buffer.
102If the pretty-printed value fits on one line, the message line is used 102If pretty-printed EXPVAL fits on one line, display it in the echo
103instead. The value is also consed onto the front of the list 103area instead. Also add EXPVAL to the front of the list
104in the variable `values'." 104in the variable `values'.
105 (interactive "xPp-eval: ") 105
106 (setq values (cons (eval expression) values)) 106Non-interactively, the argument is the value, EXPVAL, not the expression
107to evaluate."
108 (interactive "XPp-eval: ")
109 (setq values (cons expval values))
107 (let* ((old-show-function temp-buffer-show-function) 110 (let* ((old-show-function temp-buffer-show-function)
108 ;; Use this function to display the buffer. 111 ;; Use this function to display the buffer.
109 ;; This function either decides not to display it at all 112 ;; This function either decides not to display it at all
diff --git a/lisp/facemenu.el b/lisp/facemenu.el
index eaaf4dacd72..13cf7fbd734 100644
--- a/lisp/facemenu.el
+++ b/lisp/facemenu.el
@@ -690,6 +690,9 @@ This is called whenever you create a new face, and at other times."
690 (cond ((facemenu-iterate ; check if equivalent face is already in the menu 690 (cond ((facemenu-iterate ; check if equivalent face is already in the menu
691 (lambda (m) (and (listp m) 691 (lambda (m) (and (listp m)
692 (symbolp (car m)) 692 (symbolp (car m))
693 ;; Avoid error in face-equal
694 ;; when a non-face is erroneously present.
695 (facep (car m))
693 (face-equal (car m) symbol))) 696 (face-equal (car m) symbol)))
694 (cdr (symbol-function menu)))) 697 (cdr (symbol-function menu))))
695 ;; Faces with a keyboard equivalent. These go at the front. 698 ;; Faces with a keyboard equivalent. These go at the front.
diff --git a/lisp/filesets.el b/lisp/filesets.el
index eb8cdb02617..355c39f8ed7 100644
--- a/lisp/filesets.el
+++ b/lisp/filesets.el
@@ -1603,7 +1603,7 @@ Replace <file-name> or <<file-name>> with filename."
1603 ((equal arg "<file-name>") 1603 ((equal arg "<file-name>")
1604 (buffer-file-name)) 1604 (buffer-file-name))
1605 ((equal arg "<<file-name>>") 1605 ((equal arg "<<file-name>>")
1606 (filesets-quote (buffer-file-name))) 1606 (shell-quote-argument (buffer-file-name)))
1607 (t 1607 (t
1608 arg)))) 1608 arg))))
1609 1609
@@ -1701,7 +1701,7 @@ Replace <file-name> or <<file-name>> with filename."
1701 ok) 1701 ok)
1702 t))) 1702 t)))
1703 (when ok 1703 (when ok
1704 (let ((cmd (format txt (buffer-file-name)))) 1704 (let ((cmd (format txt (shell-quote-argument (buffer-file-name)))))
1705 (message "Filesets: %s" cmd) 1705 (message "Filesets: %s" cmd)
1706 (filesets-cmd-show-result cmd 1706 (filesets-cmd-show-result cmd
1707 (shell-command-to-string cmd)))))) 1707 (shell-command-to-string cmd))))))
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 63e7f43424d..dba2c407b21 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,23 @@
12006-10-13 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
2
3 * mm-uu.el (mm-uu-pgp-signed-extract-1): Use RFC 2440 definition of
4 "blank line" when searching for end of armor headers.
5
62006-10-11 Katsumi Yamaoka <yamaoka@jpl.org>
7
8 * gmm-utils.el (gmm-write-region): Fix variable name.
9
102006-10-10 Reiner Steib <Reiner.Steib@gmx.de>
11
12 * gmm-utils.el (gmm-write-region): New function based on compatibility
13 code from `mm-make-temp-file'.
14
15 * mm-util.el (mm-make-temp-file): Use `gmm-write-region'.
16
17 * nnmaildir.el (nnmaildir--update-nov)
18 (nnmaildir-request-replace-article, nnmaildir-request-accept-article):
19 Use `gmm-write-region'.
20
12006-10-04 Reiner Steib <Reiner.Steib@gmx.de> 212006-10-04 Reiner Steib <Reiner.Steib@gmx.de>
2 22
3 * gnus-sum.el (gnus-summary-make-menu-bar): Clarify 23 * gnus-sum.el (gnus-summary-make-menu-bar): Clarify
diff --git a/lisp/gnus/gmm-utils.el b/lisp/gnus/gmm-utils.el
index e773aa3bfac..59d02927008 100644
--- a/lisp/gnus/gmm-utils.el
+++ b/lisp/gnus/gmm-utils.el
@@ -401,6 +401,21 @@ If mode is nil, use `major-mode' of the curent buffer."
401 (string-match "^\\(.+\\)-mode$" mode) 401 (string-match "^\\(.+\\)-mode$" mode)
402 (match-string 1 mode)))))) 402 (match-string 1 mode))))))
403 403
404(defun gmm-write-region (start end filename &optional append visit
405 lockname mustbenew)
406 "Compatibility function for `write-region'.
407
408In XEmacs, the seventh argument of `write-region' specifies the
409coding-system."
410 (if (and mustbenew
411 (or (featurep 'xemacs)
412 (= emacs-major-version 20)))
413 (if (file-exists-p filename)
414 (signal 'file-already-exists
415 (list "File exists" filename))
416 (write-region start end filename append visit lockname))
417 (write-region start end filename append visit lockname mustbenew)))
418
404(provide 'gmm-utils) 419(provide 'gmm-utils)
405 420
406;; arch-tag: e0b60920-2ce6-40c1-bfc0-cadbbe26b602 421;; arch-tag: e0b60920-2ce6-40c1-bfc0-cadbbe26b602
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index 1c9f9749f85..e75f2ef6d5f 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -1126,17 +1126,11 @@ If SUFFIX is non-nil, add that at the end of the file name."
1126 (setq file (concat file suffix))) 1126 (setq file (concat file suffix)))
1127 (if dir-flag 1127 (if dir-flag
1128 (make-directory file) 1128 (make-directory file)
1129 (if (or (featurep 'xemacs) 1129 ;; NOTE: This is unsafe if Emacs 20
1130 (= emacs-major-version 20)) 1130 ;; users and XEmacs users don't use
1131 ;; NOTE: This is unsafe if Emacs 20 1131 ;; a secure temp directory.
1132 ;; users and XEmacs users don't use 1132 (gmm-write-region "" nil file nil 'silent
1133 ;; a secure temp directory. 1133 nil 'excl))
1134 (if (file-exists-p file)
1135 (signal 'file-already-exists
1136 (list "File exists" file))
1137 (write-region "" nil file nil 'silent))
1138 (write-region "" nil file nil 'silent
1139 nil 'excl)))
1140 nil) 1134 nil)
1141 (file-already-exists t) 1135 (file-already-exists t)
1142 ;; The Emacs 20 and XEmacs versions of 1136 ;; The Emacs 20 and XEmacs versions of
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index 9d9d87a3670..b1ed0b7af4e 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -373,7 +373,7 @@ Return that buffer."
373 mm-security-handle 'gnus-details 373 mm-security-handle 'gnus-details
374 (format "Clear verification not supported by `%s'.\n" mml2015-use)))) 374 (format "Clear verification not supported by `%s'.\n" mml2015-use))))
375 (goto-char (point-min)) 375 (goto-char (point-min))
376 (if (search-forward "\n\n" nil t) 376 (if (re-search-forward "\n[\t ]*\n" nil t)
377 (delete-region (point-min) (point))) 377 (delete-region (point-min) (point)))
378 (if (re-search-forward mm-uu-pgp-beginning-signature nil t) 378 (if (re-search-forward mm-uu-pgp-beginning-signature nil t)
379 (delete-region (match-beginning 0) (point-max))) 379 (delete-region (match-beginning 0) (point-max)))
diff --git a/lisp/gnus/nnmaildir.el b/lisp/gnus/nnmaildir.el
index 6024b992061..589c4da8caf 100644
--- a/lisp/gnus/nnmaildir.el
+++ b/lisp/gnus/nnmaildir.el
@@ -428,7 +428,8 @@ by nnmaildir-request-article.")
428 (prin1 (vector storage-version num msgid nov) (current-buffer)) 428 (prin1 (vector storage-version num msgid nov) (current-buffer))
429 (setq file (concat novfile ":")) 429 (setq file (concat novfile ":"))
430 (nnmaildir--unlink file) 430 (nnmaildir--unlink file)
431 (write-region (point-min) (point-max) file nil 'no-message nil 'excl)) 431 (gmm-write-region (point-min) (point-max) file nil 'no-message nil
432 'excl))
432 (rename-file file novfile 'replace) 433 (rename-file file novfile 'replace)
433 (setf (nnmaildir--art-msgid article) msgid) 434 (setf (nnmaildir--art-msgid article) msgid)
434 nov))) 435 nov)))
@@ -1246,8 +1247,8 @@ by nnmaildir-request-article.")
1246 (throw 'return nil)) 1247 (throw 'return nil))
1247 (save-excursion 1248 (save-excursion
1248 (set-buffer buffer) 1249 (set-buffer buffer)
1249 (write-region (point-min) (point-max) tmpfile nil 'no-message nil 1250 (gmm-write-region (point-min) (point-max) tmpfile nil 'no-message nil
1250 'excl)) 1251 'excl))
1251 (unix-sync) ;; no fsync :( 1252 (unix-sync) ;; no fsync :(
1252 (rename-file tmpfile (concat (nnmaildir--cur dir) file suffix) 'replace) 1253 (rename-file tmpfile (concat (nnmaildir--cur dir) file suffix) 'replace)
1253 t))) 1254 t)))
@@ -1341,8 +1342,8 @@ by nnmaildir-request-article.")
1341 (condition-case nil 1342 (condition-case nil
1342 (add-name-to-file nnmaildir--file tmpfile) 1343 (add-name-to-file nnmaildir--file tmpfile)
1343 (error 1344 (error
1344 (write-region (point-min) (point-max) tmpfile nil 'no-message nil 1345 (gmm-write-region (point-min) (point-max) tmpfile nil 'no-message nil
1345 'excl) 1346 'excl)
1346 (unix-sync))) ;; no fsync :( 1347 (unix-sync))) ;; no fsync :(
1347 (nnheader-cancel-timer 24h) 1348 (nnheader-cancel-timer 24h)
1348 (condition-case err 1349 (condition-case err
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index d4146b19d60..baffa004224 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -383,35 +383,40 @@ face (according to `face-differs-from-default-p')."
383 (princ ".") 383 (princ ".")
384 (terpri) 384 (terpri)
385 (when (commandp function) 385 (when (commandp function)
386 (let* ((remapped (command-remapping function)) 386 (if (and (eq function 'self-insert-command)
387 (keys (where-is-internal 387 (eq (key-binding "a") 'self-insert-command)
388 (or remapped function) overriding-local-map nil nil)) 388 (eq (key-binding "b") 'self-insert-command)
389 non-modified-keys) 389 (eq (key-binding "c") 'self-insert-command))
390 ;; Which non-control non-meta keys run this command? 390 (princ "It is bound to many ordinary text characters.\n")
391 (dolist (key keys) 391 (let* ((remapped (command-remapping function))
392 (if (member (event-modifiers (aref key 0)) '(nil (shift))) 392 (keys (where-is-internal
393 (push key non-modified-keys))) 393 (or remapped function) overriding-local-map nil nil))
394 (when remapped 394 non-modified-keys)
395 (princ "It is remapped to `") 395 ;; Which non-control non-meta keys run this command?
396 (princ (symbol-name remapped)) 396 (dolist (key keys)
397 (princ "'")) 397 (if (member (event-modifiers (aref key 0)) '(nil (shift)))
398 398 (push key non-modified-keys)))
399 (when keys 399 (when remapped
400 (princ (if remapped " which is bound to " "It is bound to ")) 400 (princ "It is remapped to `")
401 ;; FIXME: This list can be very long (f.ex. for self-insert-command). 401 (princ (symbol-name remapped))
402 ;; If there are many, remove them from KEYS. 402 (princ "'"))
403 (if (< (length non-modified-keys) 10) 403
404 (princ (mapconcat 'key-description keys ", ")) 404 (when keys
405 (dolist (key non-modified-keys) 405 (princ (if remapped " which is bound to " "It is bound to "))
406 (setq keys (delq key keys))) 406 ;; If lots of ordinary text characters run this command,
407 (if keys 407 ;; don't mention them one by one.
408 (progn 408 (if (< (length non-modified-keys) 10)
409 (princ (mapconcat 'key-description keys ", ")) 409 (princ (mapconcat 'key-description keys ", "))
410 (princ ", and many ordinary text characters")) 410 (dolist (key non-modified-keys)
411 (princ "many ordinary text characters")))) 411 (setq keys (delq key keys)))
412 (when (or remapped keys non-modified-keys) 412 (if keys
413 (princ ".") 413 (progn
414 (terpri)))) 414 (princ (mapconcat 'key-description keys ", "))
415 (princ ", and many ordinary text characters"))
416 (princ "many ordinary text characters"))))
417 (when (or remapped keys non-modified-keys)
418 (princ ".")
419 (terpri)))))
415 (let* ((arglist (help-function-arglist def)) 420 (let* ((arglist (help-function-arglist def))
416 (doc (documentation function)) 421 (doc (documentation function))
417 (usage (help-split-fundoc doc function))) 422 (usage (help-split-fundoc doc function)))
diff --git a/lisp/ido.el b/lisp/ido.el
index ff222b2958c..480b76cd68c 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -2611,7 +2611,7 @@ C-x C-f ... C-d enter dired on current directory."
2611May be useful if cached version is no longer valid, but directory 2611May be useful if cached version is no longer valid, but directory
2612timestamp has not changed (e.g. with ftp or on Windows)." 2612timestamp has not changed (e.g. with ftp or on Windows)."
2613 (interactive) 2613 (interactive)
2614 (if (and ido-mode (eq ido-cur-item 'file)) 2614 (if (and ido-mode (memq ido-cur-item '(file dir)))
2615 (progn 2615 (progn
2616 (if (ido-is-unc-root) 2616 (if (ido-is-unc-root)
2617 (setq ido-unc-hosts-cache t) 2617 (setq ido-unc-hosts-cache t)
@@ -4168,7 +4168,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
4168 (setq refresh t)) 4168 (setq refresh t))
4169 ((string-equal contents "./") 4169 ((string-equal contents "./")
4170 (setq refresh t)) 4170 (setq refresh t))
4171 ((string-match "\\`~[a-zA-Z0-9]+/\\'" contents) 4171 ((string-match "\\`~[-_a-zA-Z0-9]+[$]?/\\'" contents)
4172 (ido-trace "new home" contents) 4172 (ido-trace "new home" contents)
4173 (ido-set-current-home contents) 4173 (ido-set-current-home contents)
4174 (setq refresh t)) 4174 (setq refresh t))
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 9557844a32a..ac87a93b7a1 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -541,6 +541,17 @@ This is relative to `smtpmail-queue-dir'.")
541 (decoded (base64-decode-string challenge)) 541 (decoded (base64-decode-string challenge))
542 (hash (rfc2104-hash 'md5 64 16 passwd decoded)) 542 (hash (rfc2104-hash 'md5 64 16 passwd decoded))
543 (response (concat (smtpmail-cred-user cred) " " hash)) 543 (response (concat (smtpmail-cred-user cred) " " hash))
544 ;; Osamu Yamane <yamane@green.ocn.ne.jp>:
545 ;; SMTP auth fails because the SMTP server identifies
546 ;; only the first part of the string (delimited by
547 ;; new line characters) as a response from the
548 ;; client, and the rest as distinct commands.
549
550 ;; In my case, the response string is 80 characters
551 ;; long. Without the no-line-break option for
552 ;; base64-encode-sting, only the first 76 characters
553 ;; are taken as a response to the server, and the
554 ;; authentication fails.
544 (encoded (base64-encode-string response t))) 555 (encoded (base64-encode-string response t)))
545 (smtpmail-send-command process (format "%s" encoded)) 556 (smtpmail-send-command process (format "%s" encoded))
546 (if (or (null (car (setq ret (smtpmail-read-response process)))) 557 (if (or (null (car (setq ret (smtpmail-read-response process))))
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index bc00d859c2d..b1ca93e2f32 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -218,8 +218,8 @@ These files should contain one word per line, that gives the casing
218to be used for that word in Ada files. If the line starts with the 218to be used for that word in Ada files. If the line starts with the
219character *, then the exception will be used for substrings that either 219character *, then the exception will be used for substrings that either
220start at the beginning of a word or after a _ character, and end either 220start at the beginning of a word or after a _ character, and end either
221at the end of the word or at a _ character. Each line can be terminated by 221at the end of the word or at a _ character. Each line can be terminated
222a comment." 222by a comment."
223 :type '(repeat (file)) 223 :type '(repeat (file))
224 :group 'ada) 224 :group 'ada)
225 225
@@ -439,10 +439,10 @@ An example is:
439(defcustom ada-which-compiler 'gnat 439(defcustom ada-which-compiler 'gnat
440 "*Name of the compiler to use. 440 "*Name of the compiler to use.
441This will determine what features are made available through the Ada mode. 441This will determine what features are made available through the Ada mode.
442The possible choices are : 442The possible choices are:
443`gnat': Use Ada Core Technologies' Gnat compiler. Add some cross-referencing 443`gnat': Use Ada Core Technologies' Gnat compiler. Add some cross-referencing
444 features 444 features.
445`generic': Use a generic compiler" 445`generic': Use a generic compiler."
446 :type '(choice (const gnat) 446 :type '(choice (const gnat)
447 (const generic)) 447 (const generic))
448 :group 'ada) 448 :group 'ada)
@@ -485,7 +485,7 @@ The extensions should include a `.' if needed.")
485 "reverse" "select" "separate" "subtype" "task" "terminate" "then" 485 "reverse" "select" "separate" "subtype" "task" "terminate" "then"
486 "type" "use" "when" "while" "with" "xor") 486 "type" "use" "when" "while" "with" "xor")
487 "List of Ada keywords. 487 "List of Ada keywords.
488This variable is used to define `ada-83-keywords' and `ada-95-keywords'")) 488This variable is used to define `ada-83-keywords' and `ada-95-keywords'."))
489 489
490(defvar ada-ret-binding nil 490(defvar ada-ret-binding nil
491 "Variable to save key binding of RET when casing is activated.") 491 "Variable to save key binding of RET when casing is activated.")
@@ -532,7 +532,7 @@ See `align-mode-alist' for more information.")
532 (valid . (lambda() (not (ada-in-comment-p)))) 532 (valid . (lambda() (not (ada-in-comment-p))))
533 (modes . '(ada-mode))) 533 (modes . '(ada-mode)))
534 ) 534 )
535 "Ada support for align.el >= 2.8 535 "Ada support for align.el >= 2.8.
536This variable defines several rules to use to align different lines.") 536This variable defines several rules to use to align different lines.")
537 537
538(defconst ada-align-region-separate 538(defconst ada-align-region-separate
@@ -1439,7 +1439,7 @@ The standard casing rules will no longer apply to this word."
1439 ((listp ada-case-exception-file) 1439 ((listp ada-case-exception-file)
1440 (setq file-name (car ada-case-exception-file))) 1440 (setq file-name (car ada-case-exception-file)))
1441 (t 1441 (t
1442 (error (concat "No exception file specified. " 1442 (error (concat "No exception file specified. "
1443 "See variable ada-case-exception-file")))) 1443 "See variable ada-case-exception-file"))))
1444 1444
1445 (set-syntax-table ada-mode-symbol-syntax-table) 1445 (set-syntax-table ada-mode-symbol-syntax-table)
@@ -1478,7 +1478,7 @@ word itself has a special casing."
1478 ((listp ada-case-exception-file) 1478 ((listp ada-case-exception-file)
1479 (car ada-case-exception-file)) 1479 (car ada-case-exception-file))
1480 (t 1480 (t
1481 (error (concat "No exception file specified. " 1481 (error (concat "No exception file specified. "
1482 "See variable ada-case-exception-file")))))) 1482 "See variable ada-case-exception-file"))))))
1483 1483
1484 ;; Find the substring to define as an exception. Order is: the parameter, 1484 ;; Find the substring to define as an exception. Order is: the parameter,
@@ -1593,8 +1593,8 @@ word itself has a special casing."
1593 1593
1594(defun ada-adjust-case-identifier () 1594(defun ada-adjust-case-identifier ()
1595 "Adjust case of the previous identifier. 1595 "Adjust case of the previous identifier.
1596The auto-casing is done according to the value of `ada-case-identifier' and 1596The auto-casing is done according to the value of `ada-case-identifier'
1597the exceptions defined in `ada-case-exception-file'." 1597and the exceptions defined in `ada-case-exception-file'."
1598 (interactive) 1598 (interactive)
1599 (if (or (equal ada-case-exception '()) 1599 (if (or (equal ada-case-exception '())
1600 (equal (char-after) ?_)) 1600 (equal (char-after) ?_))
@@ -1743,7 +1743,7 @@ ARG is ignored, and is there for compatibility with `capitalize-word' only."
1743(defun ada-no-auto-case (&optional arg) 1743(defun ada-no-auto-case (&optional arg)
1744 "Do nothing. 1744 "Do nothing.
1745This function can be used for the auto-casing variables in the Ada mode, to 1745This function can be used for the auto-casing variables in the Ada mode, to
1746adapt to unusal auto-casing schemes. Since it does nothing, you can for 1746adapt to unusal auto-casing schemes. Since it does nothing, you can for
1747instance use it for `ada-case-identifier' if you don't want any special 1747instance use it for `ada-case-identifier' if you don't want any special
1748auto-casing for identifiers, whereas keywords have to be lower-cased. 1748auto-casing for identifiers, whereas keywords have to be lower-cased.
1749See also `ada-auto-case' to disable auto casing altogether." 1749See also `ada-auto-case' to disable auto casing altogether."
@@ -1806,7 +1806,7 @@ Attention: This function might take very long for big regions!"
1806 (set-syntax-table previous-syntax-table)))) 1806 (set-syntax-table previous-syntax-table))))
1807 1807
1808(defun ada-adjust-case-buffer () 1808(defun ada-adjust-case-buffer ()
1809 "Adjusts the case of all words in the whole buffer. 1809 "Adjust the case of all words in the whole buffer.
1810ATTENTION: This function might take very long for big buffers!" 1810ATTENTION: This function might take very long for big buffers!"
1811 (interactive "*") 1811 (interactive "*")
1812 (ada-adjust-case-region (point-min) (point-max))) 1812 (ada-adjust-case-region (point-min) (point-max)))
@@ -2138,7 +2138,7 @@ Return the equivalent internal parameter list."
2138 (ada-indent-current)) 2138 (ada-indent-current))
2139 (forward-line 1) 2139 (forward-line 1)
2140 (setq block-done (1+ block-done))) 2140 (setq block-done (1+ block-done)))
2141 (message "indenting ... done"))) 2141 (message "Indenting ... done")))
2142 2142
2143(defun ada-indent-newline-indent () 2143(defun ada-indent-newline-indent ()
2144 "Indent the current line, insert a newline and then indent the new line." 2144 "Indent the current line, insert a newline and then indent the new line."
@@ -3841,7 +3841,7 @@ If GOTOTHEN is non-nil, point moves to the 'then' following 'if'."
3841(defun ada-goto-matching-end (&optional nest-level noerror) 3841(defun ada-goto-matching-end (&optional nest-level noerror)
3842 "Move point to the end of a block. 3842 "Move point to the end of a block.
3843Which block depends on the value of NEST-LEVEL, which defaults to zero. 3843Which block depends on the value of NEST-LEVEL, which defaults to zero.
3844If NOERROR is non-nil, it only returns nil if found no matching start." 3844If NOERROR is non-nil, it only returns nil if no matching start found."
3845 (let ((nest-count (or nest-level 0)) 3845 (let ((nest-count (or nest-level 0))
3846 (regex (eval-when-compile 3846 (regex (eval-when-compile
3847 (concat "\\<" 3847 (concat "\\<"
@@ -4058,7 +4058,7 @@ Assumes point to be at the end of a statement."
4058 4058
4059(defun ada-looking-at-semi-private () 4059(defun ada-looking-at-semi-private ()
4060 "Return t if looking at the start of a private section in a package. 4060 "Return t if looking at the start of a private section in a package.
4061Returns nil if the private is part of the package name, as in 4061Return nil if the private is part of the package name, as in
4062'private package A is...' (this can only happen at top level)." 4062'private package A is...' (this can only happen at top level)."
4063 (save-excursion 4063 (save-excursion
4064 (and (looking-at "\\<private\\>") 4064 (and (looking-at "\\<private\\>")
@@ -4968,7 +4968,7 @@ Redefines the function `ff-which-function-are-we-in'."
4968 4968
4969 4969
4970(defvar ada-last-which-function-line -1 4970(defvar ada-last-which-function-line -1
4971 "Last on which `ada-which-function' was called.") 4971 "Last line on which `ada-which-function' was called.")
4972(defvar ada-last-which-function-subprog 0 4972(defvar ada-last-which-function-subprog 0
4973 "Last subprogram name returned by `ada-which-function'.") 4973 "Last subprogram name returned by `ada-which-function'.")
4974(make-variable-buffer-local 'ada-last-which-function-subprog) 4974(make-variable-buffer-local 'ada-last-which-function-subprog)
@@ -5062,7 +5062,7 @@ Since the search can be long, the results are cached."
5062(defun ada-get-body-name (&optional spec-name) 5062(defun ada-get-body-name (&optional spec-name)
5063 "Return the file name for the body of SPEC-NAME. 5063 "Return the file name for the body of SPEC-NAME.
5064If SPEC-NAME is nil, return the body for the current package. 5064If SPEC-NAME is nil, return the body for the current package.
5065Returns nil if no body was found." 5065Return nil if no body was found."
5066 (interactive) 5066 (interactive)
5067 5067
5068 (unless spec-name (setq spec-name (buffer-file-name))) 5068 (unless spec-name (setq spec-name (buffer-file-name)))
@@ -5223,7 +5223,7 @@ Returns nil if no body was found."
5223 "Make text outside current subprogram invisible. 5223 "Make text outside current subprogram invisible.
5224The subprogram visible is the one that contains or follow point. 5224The subprogram visible is the one that contains or follow point.
5225Optional ARG is ignored. 5225Optional ARG is ignored.
5226Use `M-x widen' to go back to the full visibility for the buffer." 5226Use \\[widen] to go back to the full visibility for the buffer."
5227 5227
5228 (interactive) 5228 (interactive)
5229 (save-excursion 5229 (save-excursion
diff --git a/lisp/progmodes/ada-xref.el b/lisp/progmodes/ada-xref.el
index 9e3f8e14332..05d2a8bf65b 100644
--- a/lisp/progmodes/ada-xref.el
+++ b/lisp/progmodes/ada-xref.el
@@ -1916,8 +1916,12 @@ is using."
1916 (set-buffer (get-buffer-create "*grep*")) 1916 (set-buffer (get-buffer-create "*grep*"))
1917 (while dirs 1917 (while dirs
1918 (insert (shell-command-to-string 1918 (insert (shell-command-to-string
1919 (concat "egrep -i -h '^X|" regexp "( |$)' " 1919 (concat
1920 (file-name-as-directory (car dirs)) "*.ali"))) 1920 "grep -E -i -h "
1921 (shell-quote-argument (concat "^X|" regexp "( |$)"))
1922 " "
1923 (shell-quote-argument (file-name-as-directory (car dirs)))
1924 "*.ali")))
1921 (set 'dirs (cdr dirs))) 1925 (set 'dirs (cdr dirs)))
1922 1926
1923 ;; Now parse the output 1927 ;; Now parse the output
diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el
index 4f197e34bfe..b37be18188c 100644
--- a/lisp/progmodes/flymake.el
+++ b/lisp/progmodes/flymake.el
@@ -1021,7 +1021,9 @@ For the format of LINE-ERR-INFO, see `flymake-ler-make-ler'."
1021 (progn 1021 (progn
1022 (flymake-get-project-include-dirs-from-cache basedir)) 1022 (flymake-get-project-include-dirs-from-cache basedir))
1023 ;;else 1023 ;;else
1024 (let* ((command-line (concat "make -C\"" basedir "\" DUMPVARS=INCLUDE_DIRS dumpvars")) 1024 (let* ((command-line (concat "make -C "
1025 (shell-quote-argument basedir)
1026 " DUMPVARS=INCLUDE_DIRS dumpvars"))
1025 (output (shell-command-to-string command-line)) 1027 (output (shell-command-to-string command-line))
1026 (lines (flymake-split-string output "\n")) 1028 (lines (flymake-split-string output "\n"))
1027 (count (length lines)) 1029 (count (length lines))
diff --git a/lisp/recentf.el b/lisp/recentf.el
index 02e7e712399..ca288100b98 100644
--- a/lisp/recentf.el
+++ b/lisp/recentf.el
@@ -1318,9 +1318,7 @@ With prefix argument ARG, turn on if positive, otherwise off.
1318Returns non-nil if the new state is enabled. 1318Returns non-nil if the new state is enabled.
1319 1319
1320When recentf mode is enabled, it maintains a menu for visiting files 1320When recentf mode is enabled, it maintains a menu for visiting files
1321that were operated on recently. 1321that were operated on recently."
1322
1323\\{recentf-mode-map}"
1324 :global t 1322 :global t
1325 :group 'recentf 1323 :group 'recentf
1326 :keymap recentf-mode-map 1324 :keymap recentf-mode-map
diff --git a/lisp/shell.el b/lisp/shell.el
index 2adfc79618a..d3e23251a1f 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -298,7 +298,9 @@ Value is a list of strings, which may be nil."
298 (equal name "bash") 298 (equal name "bash")
299 (file-executable-p prog) 299 (file-executable-p prog)
300 (string-match "bad option" 300 (string-match "bad option"
301 (shell-command-to-string (concat prog " --noediting")))) 301 (shell-command-to-string
302 (concat (shell-quote-argument prog)
303 " --noediting"))))
302 '("-i") 304 '("-i")
303 '("--noediting" "-i"))) 305 '("--noediting" "-i")))
304 "Args passed to inferior shell by \\[shell], if the shell is bash. 306 "Args passed to inferior shell by \\[shell], if the shell is bash.
diff --git a/lisp/simple.el b/lisp/simple.el
index 0dff1c73795..8fc0fdf6b48 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -985,12 +985,11 @@ in *Help* buffer. See also the command `describe-char'."
985 (single-key-description char)) 985 (single-key-description char))
986 encoding-msg pos total percent col hscroll)))))) 986 encoding-msg pos total percent col hscroll))))))
987 987
988(defvar read-expression-map 988;; Initialize read-expression-map. It is defined at C level.
989 (let ((m (make-sparse-keymap))) 989(let ((m (make-sparse-keymap)))
990 (define-key m "\M-\t" 'lisp-complete-symbol) 990 (define-key m "\M-\t" 'lisp-complete-symbol)
991 (set-keymap-parent m minibuffer-local-map) 991 (set-keymap-parent m minibuffer-local-map)
992 m) 992 (setq read-expression-map m))
993 "Minibuffer keymap used for reading Lisp expressions.")
994 993
995(defvar read-expression-history nil) 994(defvar read-expression-history nil)
996 995
@@ -3617,7 +3616,14 @@ Outline mode sets this."
3617 ;; The logic of this is the same as the loop above, 3616 ;; The logic of this is the same as the loop above,
3618 ;; it just goes in the other direction. 3617 ;; it just goes in the other direction.
3619 (while (and (< arg 0) (not done)) 3618 (while (and (< arg 0) (not done))
3620 (beginning-of-line) 3619 ;; For completely consistency with the forward-motion
3620 ;; case, we should call beginning-of-line here.
3621 ;; However, if point is inside a field and on a
3622 ;; continued line, the call to (vertical-motion -1)
3623 ;; below won't move us back far enough; then we return
3624 ;; to the same column in line-move-finish, and point
3625 ;; gets stuck -- cyd
3626 (forward-line 0)
3621 (cond 3627 (cond
3622 ((bobp) 3628 ((bobp)
3623 (if (not noerror) 3629 (if (not noerror)
diff --git a/lisp/subr.el b/lisp/subr.el
index ad3e732c6c6..1f947a795f9 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2195,6 +2195,12 @@ If UNDO is present and non-nil, it is a function that will be called
2195 2195
2196 (unless (nth 2 handler) ;; NOEXCLUDE 2196 (unless (nth 2 handler) ;; NOEXCLUDE
2197 (remove-yank-excluded-properties opoint (point))) 2197 (remove-yank-excluded-properties opoint (point)))
2198
2199 ;; If last inserted char has properties, mark them as rear-nonsticky.
2200 (if (and (> end opoint)
2201 (text-properties-at (1- end)))
2202 (put-text-property (1- end) end 'rear-nonsticky t))
2203
2198 (if (eq yank-undo-function t) ;; not set by FUNCTION 2204 (if (eq yank-undo-function t) ;; not set by FUNCTION
2199 (setq yank-undo-function (nth 3 handler))) ;; UNDO 2205 (setq yank-undo-function (nth 3 handler))) ;; UNDO
2200 (if (nth 4 handler) ;; COMMAND 2206 (if (nth 4 handler) ;; COMMAND
diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index aba5c6d1e4c..ec058e97c1e 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -2477,12 +2477,15 @@ order until succeed.")
2477 (cons '(user-size . t) parsed)))) 2477 (cons '(user-size . t) parsed))))
2478 ;; All geometry parms apply to the initial frame. 2478 ;; All geometry parms apply to the initial frame.
2479 (setq initial-frame-alist (append initial-frame-alist parsed)) 2479 (setq initial-frame-alist (append initial-frame-alist parsed))
2480 ;; The size parms apply to all frames. 2480 ;; The size parms apply to all frames. Don't set it if there are
2481 (if (assq 'height parsed) 2481 ;; sizes there already (from command line).
2482 (if (and (assq 'height parsed)
2483 (not (assq 'height default-frame-alist)))
2482 (setq default-frame-alist 2484 (setq default-frame-alist
2483 (cons (cons 'height (cdr (assq 'height parsed))) 2485 (cons (cons 'height (cdr (assq 'height parsed)))
2484 default-frame-alist))) 2486 default-frame-alist)))
2485 (if (assq 'width parsed) 2487 (if (and (assq 'width parsed)
2488 (not (assq 'width default-frame-alist)))
2486 (setq default-frame-alist 2489 (setq default-frame-alist
2487 (cons (cons 'width (cdr (assq 'width parsed))) 2490 (cons (cons 'width (cdr (assq 'width parsed)))
2488 default-frame-alist)))))) 2491 default-frame-alist))))))
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index ebee4691e8c..e7b95c9619d 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -959,6 +959,7 @@ Mostly we check word delimiters."
959(defun flyspell-word-search-backward (word bound) 959(defun flyspell-word-search-backward (word bound)
960 (save-excursion 960 (save-excursion
961 (let ((r '()) 961 (let ((r '())
962 (inhibit-point-motion-hooks t)
962 p) 963 p)
963 (while (and (not r) (setq p (search-backward word bound t))) 964 (while (and (not r) (setq p (search-backward word bound t)))
964 (let ((lw (flyspell-get-word '()))) 965 (let ((lw (flyspell-get-word '())))
@@ -973,6 +974,7 @@ Mostly we check word delimiters."
973(defun flyspell-word-search-forward (word bound) 974(defun flyspell-word-search-forward (word bound)
974 (save-excursion 975 (save-excursion
975 (let ((r '()) 976 (let ((r '())
977 (inhibit-point-motion-hooks t)
976 p) 978 p)
977 (while (and (not r) (setq p (search-forward word bound t))) 979 (while (and (not r) (setq p (search-forward word bound t)))
978 (let ((lw (flyspell-get-word '()))) 980 (let ((lw (flyspell-get-word '())))
diff --git a/lisp/textmodes/table.el b/lisp/textmodes/table.el
index 002ab9dac11..169eeb249f2 100644
--- a/lisp/textmodes/table.el
+++ b/lisp/textmodes/table.el
@@ -614,6 +614,7 @@
614;;; Code: 614;;; Code:
615 615
616 616
617(require 'regexp-opt)
617 618
618;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 619;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
619;;; 620;;;
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index 2aa14af8983..2d26bc805a7 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,8 @@
12006-10-16 Magnus Henoch <mange@freemail.hu>
2
3 * url-http.el (url-https-create-secure-wrapper): Always use tls
4 gateway method.
5
12006-10-12 Magnus Henoch <mange@freemail.hu> 62006-10-12 Magnus Henoch <mange@freemail.hu>
2 7
3 * url-http.el (url-http-find-free-connection): Handle 8 * url-http.el (url-http-find-free-connection): Handle
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index bf8069ded7e..958d90683e4 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -1261,9 +1261,7 @@ p3p
1261(defmacro url-https-create-secure-wrapper (method args) 1261(defmacro url-https-create-secure-wrapper (method args)
1262 `(defun ,(intern (format (if method "url-https-%s" "url-https") method)) ,args 1262 `(defun ,(intern (format (if method "url-https-%s" "url-https") method)) ,args
1263 ,(format "HTTPS wrapper around `%s' call." (or method "url-http")) 1263 ,(format "HTTPS wrapper around `%s' call." (or method "url-http"))
1264 (let ((url-gateway-method (condition-case () 1264 (let ((url-gateway-method 'tls))
1265 (require 'ssl)
1266 (error 'tls))))
1267 (,(intern (format (if method "url-http-%s" "url-http") method)) 1265 (,(intern (format (if method "url-http-%s" "url-http") method))
1268 ,@(remove '&rest (remove '&optional args)))))) 1266 ,@(remove '&rest (remove '&optional args))))))
1269 1267
diff --git a/lisp/woman.el b/lisp/woman.el
index 13fa3147487..b25a93d86a8 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -4121,7 +4121,11 @@ If `woman-nofill' is non-nil then indent without filling or adjusting."
4121 (eolp) 4121 (eolp)
4122 (skip-syntax-forward " ") 4122 (skip-syntax-forward " ")
4123 (setq woman-leave-blank-lines 1)) 4123 (setq woman-leave-blank-lines 1))
4124 (beginning-of-line) 4124 ;; This shouldn't happen, but in case it does (e.g. for
4125 ;; badly-formatted manfiles with no terminating newline),
4126 ;; avoid an infinite loop.
4127 (unless (and (eolp) (eobp))
4128 (beginning-of-line))
4125 ;; If a single short line then just leave it. 4129 ;; If a single short line then just leave it.
4126 ;; This is necessary to preserve some table layouts. 4130 ;; This is necessary to preserve some table layouts.
4127 ;; PROBABLY NOT NECESSARY WITH SQUEEZE MODIFICATION !!!!! 4131 ;; PROBABLY NOT NECESSARY WITH SQUEEZE MODIFICATION !!!!!
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index b059d238cdd..a09e9a65a4b 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,32 @@
12006-10-18 Juanma Barranquero <lekktu@gmail.com>
2
3 * control.texi (Processing of Errors): Use @var for an argument,
4 not @code.
5
62006-10-16 Richard Stallman <rms@gnu.org>
7
8 * edebug.texi (Edebug Recursive Edit): Minor cleanup.
9
10 * keymaps.texi (Format of Keymaps): Show all the keymap element
11 patterns that result from menu items.
12 (Key Lookup): Minor cleanups.
13
14 * modes.texi (Precalculated Fontification): Don't say that
15 not setting font-lock-defaults avoids loading font-lock.
16
17 * help.texi (Documentation): Move xref to Emacs Manual here.
18 (Documentation Basics): From here.
19 Also doc emacs-lisp-docstring-fill-column.
20
21 * elisp.texi: Update version and ISBN.
22
23 * commands.texi (Interactive Call): Clarify KEYS arg to
24 call-interactively is a vector.
25 (Command Loop Info): Delete anchor in this-command-keys.
26 Add anchor in this-command-keys-vector.
27 (Recursive Editing): Document how recursive-edit
28 handles the current buffer.
29
12006-10-13 Chong Yidong <cyd@stupidchicken.com> 302006-10-13 Chong Yidong <cyd@stupidchicken.com>
2 31
3 * frames.texi (Frame Titles): %c and %l are ignored in 32 * frames.texi (Frame Titles): %c and %l are ignored in
@@ -2179,7 +2208,7 @@
2179 * elisp.texi (Top): Update detailed menu for node changes. 2208 * elisp.texi (Top): Update detailed menu for node changes.
2180 2209
2181 * modes.texi (Modes): Update Menu. 2210 * modes.texi (Modes): Update Menu.
2182 (Hooks): Move to beginning of chapter. 2211 (Hooks): Move to beginning of chapter.
2183 Most minor modes run mode hooks too. 2212 Most minor modes run mode hooks too.
2184 `add-hook' can handle void hooks or hooks whose value is a single 2213 `add-hook' can handle void hooks or hooks whose value is a single
2185 function. 2214 function.
@@ -3444,7 +3473,7 @@
3444 (Quoted Character Input): Clarify description of 3473 (Quoted Character Input): Clarify description of
3445 `read-quoted-char' and fix example. 3474 `read-quoted-char' and fix example.
3446 (Quitting): Add `with-local-quit'. 3475 (Quitting): Add `with-local-quit'.
3447 (Disabling Commands): Correct and clarify descriptions of 3476 (Disabling Commands): Correct and clarify descriptions of
3448 `enable-command' and `disable-command'. 3477 `enable-command' and `disable-command'.
3449 Mention what happens if `disabled-command-hook' is nil. 3478 Mention what happens if `disabled-command-hook' is nil.
3450 (Keyboard Macros): Mention LOOPFUNC arg to `execute-kbd-macro'. 3479 (Keyboard Macros): Mention LOOPFUNC arg to `execute-kbd-macro'.
@@ -3758,7 +3787,7 @@
3758 3787
37592004-04-04 Luc Teirlinck <teirllm@auburn.edu> 37882004-04-04 Luc Teirlinck <teirllm@auburn.edu>
3760 3789
3761 * backups.texi: Various small changes in addition to: 3790 * backups.texi: Various small changes in addition to:
3762 (Making Backups): Mention return value of `backup-buffer'. 3791 (Making Backups): Mention return value of `backup-buffer'.
3763 (Auto-Saving): Mention optional FORCE argument to 3792 (Auto-Saving): Mention optional FORCE argument to
3764 `delete-auto-save-file-if-necessary'. 3793 `delete-auto-save-file-if-necessary'.
@@ -5339,7 +5368,7 @@ Sat Aug 11 17:39:10 1990 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
5339 5368
5340Tue Jun 26 09:57:26 1990 David Lawrence (tale@geech) 5369Tue Jun 26 09:57:26 1990 David Lawrence (tale@geech)
5341 5370
5342 * files.texi: Noted that completion-ignored-extensions is ignored 5371 * files.texi: Noted that completion-ignored-extensions is ignored
5343 when making *Completions*. 5372 when making *Completions*.
5344 5373
5345Fri Jun 8 16:44:44 EDT 1990 Jay Fenlason (hack@ai.mit.edu) 5374Fri Jun 8 16:44:44 EDT 1990 Jay Fenlason (hack@ai.mit.edu)
@@ -5374,7 +5403,7 @@ Mon Apr 24 21:02:55 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
5374 5403
5375Mon Apr 17 18:56:50 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu) 5404Mon Apr 17 18:56:50 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
5376 5405
5377 * texinfo.tex: temporarily added 5406 * texinfo.tex: Temporarily added
5378 \let\result=\dblarrow 5407 \let\result=\dblarrow
5379 \def\error{{\it ERROR} \longdblarrow} 5408 \def\error{{\it ERROR} \longdblarrow}
5380 We need to do this better soon. 5409 We need to do this better soon.
diff --git a/lispref/commands.texi b/lispref/commands.texi
index e27488964d0..16b825d3de3 100644
--- a/lispref/commands.texi
+++ b/lispref/commands.texi
@@ -575,10 +575,11 @@ arguments are unconditionally added to the list @code{command-history}.
575Otherwise, the command is added only if it uses the minibuffer to read 575Otherwise, the command is added only if it uses the minibuffer to read
576an argument. @xref{Command History}. 576an argument. @xref{Command History}.
577 577
578The argument @var{keys}, if given, specifies the sequence of events to 578The argument @var{keys}, if given, should be a vector which specifies
579supply if the command inquires which events were used to invoke it. 579the sequence of events to supply if the command inquires which events
580If @var{keys} is omitted or @code{nil}, the return value of 580were used to invoke it. If @var{keys} is omitted or @code{nil}, the
581@code{this-command-keys} is used. @xref{Definition of this-command-keys}. 581default is the return value of @code{this-command-keys-vector}.
582@xref{Definition of this-command-keys-vector}.
582@end defun 583@end defun
583 584
584@defun command-execute command &optional record-flag keys special 585@defun command-execute command &optional record-flag keys special
@@ -785,7 +786,6 @@ was specified to run but remapped into another command.
785@end defvar 786@end defvar
786 787
787@defun this-command-keys 788@defun this-command-keys
788@anchor{Definition of this-command-keys}
789This function returns a string or vector containing the key sequence 789This function returns a string or vector containing the key sequence
790that invoked the present command, plus any previous commands that 790that invoked the present command, plus any previous commands that
791generated the prefix argument for this command. Any events read by the 791generated the prefix argument for this command. Any events read by the
@@ -806,6 +806,7 @@ fit in a string. @xref{Input Events}.
806@end defun 806@end defun
807 807
808@defun this-command-keys-vector 808@defun this-command-keys-vector
809@anchor{Definition of this-command-keys-vector}
809Like @code{this-command-keys}, except that it always returns the events 810Like @code{this-command-keys}, except that it always returns the events
810in a vector, so you don't need to deal with the complexities of storing 811in a vector, so you don't need to deal with the complexities of storing
811input events in a string (@pxref{Strings of Events}). 812input events in a string (@pxref{Strings of Events}).
@@ -3021,7 +3022,12 @@ automatically by the initialization of Emacs, to let the user begin
3021editing. When called from a Lisp program, it enters a recursive editing 3022editing. When called from a Lisp program, it enters a recursive editing
3022level. 3023level.
3023 3024
3024 In the following example, the function @code{simple-rec} first 3025If the current buffer is not the same as the selected window's buffer,
3026@code{recursive-edit} saves and restores the current buffer. Otherwise,
3027if you switch buffers, the buffer you switched to is current after
3028@code{recursive-edit} returns.
3029
3030In the following example, the function @code{simple-rec} first
3025advances point one word, then enters a recursive edit, printing out a 3031advances point one word, then enters a recursive edit, printing out a
3026message in the echo area. The user can then do any editing desired, and 3032message in the echo area. The user can then do any editing desired, and
3027then type @kbd{C-M-c} to exit and continue executing @code{simple-rec}. 3033then type @kbd{C-M-c} to exit and continue executing @code{simple-rec}.
diff --git a/lispref/control.texi b/lispref/control.texi
index 3ed0b7f90ec..93d5bb36d8c 100644
--- a/lispref/control.texi
+++ b/lispref/control.texi
@@ -862,7 +862,7 @@ handle errors that return control to the Emacs command loop. The
862function should take three arguments: @var{data}, a list of the same 862function should take three arguments: @var{data}, a list of the same
863form that @code{condition-case} would bind to its variable; 863form that @code{condition-case} would bind to its variable;
864@var{context}, a string describing the situation in which the error 864@var{context}, a string describing the situation in which the error
865occurred, or (more often) @code{nil}; and @code{caller}, the Lisp 865occurred, or (more often) @code{nil}; and @var{caller}, the Lisp
866function which called the primitive that signaled the error. 866function which called the primitive that signaled the error.
867@end defvar 867@end defvar
868 868
diff --git a/lispref/edebug.texi b/lispref/edebug.texi
index b2bab6030ed..98718aba74b 100644
--- a/lispref/edebug.texi
+++ b/lispref/edebug.texi
@@ -1044,9 +1044,9 @@ The variables @code{last-command}, @code{this-command},
1044@code{track-mouse}. Commands used within Edebug do not affect these 1044@code{track-mouse}. Commands used within Edebug do not affect these
1045variables outside of Edebug. 1045variables outside of Edebug.
1046 1046
1047The key sequence returned by @code{this-command-keys} is changed by 1047Executing commands within Edebug can change the key sequence that
1048executing commands within Edebug and there is no way to reset 1048would be returned by @code{this-command-keys}, and there is no way to
1049the key sequence from Lisp. 1049reset the key sequence from Lisp.
1050 1050
1051Edebug cannot save and restore the value of 1051Edebug cannot save and restore the value of
1052@code{unread-command-events}. Entering Edebug while this variable has a 1052@code{unread-command-events}. Entering Edebug while this variable has a
diff --git a/lispref/elisp.texi b/lispref/elisp.texi
index 41a2f1cdde0..9a047dbb332 100644
--- a/lispref/elisp.texi
+++ b/lispref/elisp.texi
@@ -7,7 +7,7 @@
7@c Version of the manual and of Emacs. 7@c Version of the manual and of Emacs.
8@c Please remember to update the edition number in README as well. 8@c Please remember to update the edition number in README as well.
9@set VERSION 2.9 9@set VERSION 2.9
10@set EMACSVER 22.0.51 10@set EMACSVER 22.1
11 11
12@dircategory Emacs 12@dircategory Emacs
13@direntry 13@direntry
@@ -74,7 +74,7 @@ Published by the Free Software Foundation @*
7451 Franklin St, Fifth Floor @* 7451 Franklin St, Fifth Floor @*
75Boston, MA 02110-1301 @* 75Boston, MA 02110-1301 @*
76USA @* 76USA @*
77ISBN 1-882114-73-6 77ISBN 1-882114-74-4
78 78
79@sp 1 79@sp 1
80Cover art by Etienne Suvasa. 80Cover art by Etienne Suvasa.
diff --git a/lispref/help.texi b/lispref/help.texi
index 6173c746d1e..ecccff421c7 100644
--- a/lispref/help.texi
+++ b/lispref/help.texi
@@ -22,6 +22,9 @@ of documentation strings is not sufficient as a manual because a good
22manual is not organized in that fashion; it is organized in terms of 22manual is not organized in that fashion; it is organized in terms of
23topics of discussion. 23topics of discussion.
24 24
25 For commands to access documentation strings, see @ref{Help, ,
26Help, emacs, The GNU Emacs Manual}.
27
25@menu 28@menu
26* Documentation Basics:: Good style for doc strings. 29* Documentation Basics:: Good style for doc strings.
27 Where to put them. How Emacs stores them. 30 Where to put them. How Emacs stores them.
@@ -63,6 +66,10 @@ documentation is displayed. This allows documentation strings to refer
63to the keys for related commands and be accurate even when a user 66to the keys for related commands and be accurate even when a user
64rearranges the key bindings. (@xref{Keys in Documentation}.) 67rearranges the key bindings. (@xref{Keys in Documentation}.)
65 68
69@vindex emacs-lisp-docstring-fill-column
70 Emacs Lisp mode fills documentation strings to the width
71specified by @code{emacs-lisp-docstring-fill-column}.
72
66 In Emacs Lisp, a documentation string is accessible through the 73 In Emacs Lisp, a documentation string is accessible through the
67function or variable that it describes: 74function or variable that it describes:
68 75
@@ -100,9 +107,6 @@ documentation string. The functions @code{documentation} and
100documentation string from the appropriate file; this is transparent to 107documentation string from the appropriate file; this is transparent to
101the user. 108the user.
102 109
103 For information on the uses of documentation strings, see @ref{Help, ,
104Help, emacs, The GNU Emacs Manual}.
105
106@c Wordy to prevent overfull hbox. --rjc 15mar92 110@c Wordy to prevent overfull hbox. --rjc 15mar92
107 The @file{emacs/lib-src} directory contains two utilities that you can 111 The @file{emacs/lib-src} directory contains two utilities that you can
108use to print nice-looking hardcopy for the file 112use to print nice-looking hardcopy for the file
diff --git a/lispref/keymaps.texi b/lispref/keymaps.texi
index 6f4c2d9aceb..1f017b1f43e 100644
--- a/lispref/keymaps.texi
+++ b/lispref/keymaps.texi
@@ -174,13 +174,18 @@ ordinary binding applies to events of a particular @dfn{event type},
174which is always a character or a symbol. @xref{Classifying Events}. 174which is always a character or a symbol. @xref{Classifying Events}.
175In this kind of binding, @var{binding} is a command. 175In this kind of binding, @var{binding} is a command.
176 176
177@item (@var{type} @var{item-name} .@: @var{binding}) 177@item (@var{type} @var{item-name} @r{[}@var{cache}@r{]} .@: @var{binding})
178This specifies a binding which is also a menu item 178This specifies a binding which is also a simple menu item that
179named @var{item-name}. @xref{Simple Menu Items}. 179displays as @var{item-name} in the menu. @var{cache}, if present,
180caches certain information for display in the menu. @xref{Simple Menu
181Items}.
182
183@item (@var{type} @var{item-name} @var{help-string} @r{[}@var{cache}@r{]} .@: @var{binding})
184This is a simple menu item with help string @var{help-string}.
180 185
181@item (@var{type} menu-item .@: @var{details}) 186@item (@var{type} menu-item .@: @var{details})
182This specifies a binding which is also a menu item and allows use of 187This specifies a binding which is also an extended menu item. This
183other features. @xref{Extended Menu Items}. 188allows use of other features. @xref{Extended Menu Items}.
184 189
185@item (t .@: @var{binding}) 190@item (t .@: @var{binding})
186@cindex default key binding 191@cindex default key binding
@@ -203,9 +208,10 @@ keymap}. Other keymaps are called @dfn{sparse keymaps}.
203@cindex keymap prompt string 208@cindex keymap prompt string
204@cindex overall prompt string 209@cindex overall prompt string
205@cindex prompt string of keymap 210@cindex prompt string of keymap
206Aside from bindings, a keymap can also have a string as an element. 211Aside from elements that specify bindings for keys, a keymap can also
207This is called the @dfn{overall prompt string} and makes it possible to 212have a string as an element. This is called the @dfn{overall prompt
208use the keymap as a menu. @xref{Defining Menus}. 213string} and makes it possible to use the keymap as a menu.
214@xref{Defining Menus}.
209@end table 215@end table
210 216
211When the binding is @code{nil}, it doesn't constitute a definition 217When the binding is @code{nil}, it doesn't constitute a definition
@@ -932,11 +938,11 @@ keymap.
932 938
933 Let's use the term @dfn{keymap entry} to describe the value found by 939 Let's use the term @dfn{keymap entry} to describe the value found by
934looking up an event type in a keymap. (This doesn't include the item 940looking up an event type in a keymap. (This doesn't include the item
935string and other extra elements in menu key bindings, because 941string and other extra elements in a keymap element for a menu item, because
936@code{lookup-key} and other key lookup functions don't include them in 942@code{lookup-key} and other key lookup functions don't include them in
937the returned value.) While any Lisp object may be stored in a keymap as 943the returned value.) While any Lisp object may be stored in a keymap
938a keymap entry, not all make sense for key lookup. Here is a table of 944as a keymap entry, not all make sense for key lookup. Here is a table
939the meaningful kinds of keymap entries: 945of the meaningful types of keymap entries:
940 946
941@table @asis 947@table @asis
942@item @code{nil} 948@item @code{nil}
@@ -964,7 +970,7 @@ event of the key sequence is looked up in @var{keymap}.
964 970
965@item @var{list} 971@item @var{list}
966@cindex list in keymap 972@cindex list in keymap
967The meaning of a list depends on the types of the elements of the list. 973The meaning of a list depends on what it contains:
968 974
969@itemize @bullet 975@itemize @bullet
970@item 976@item
diff --git a/lispref/modes.texi b/lispref/modes.texi
index bb8d840d0fb..d5e058fa1c8 100644
--- a/lispref/modes.texi
+++ b/lispref/modes.texi
@@ -2816,8 +2816,7 @@ which construct their text programmatically, such as
2816 2816
2817If your mode does not use any of the other machinery of Font Lock 2817If your mode does not use any of the other machinery of Font Lock
2818(i.e. it only uses the @code{font-lock-face} property), it should not 2818(i.e. it only uses the @code{font-lock-face} property), it should not
2819set the variable @code{font-lock-defaults}. That way, it will not 2819set the variable @code{font-lock-defaults}.
2820cause loading of the @file{font-lock} library.
2821 2820
2822@node Faces for Font Lock 2821@node Faces for Font Lock
2823@subsection Faces for Font Lock 2822@subsection Faces for Font Lock
diff --git a/man/ChangeLog b/man/ChangeLog
index 8542e0c6067..a9773e7d500 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,16 @@
12006-10-16 Richard Stallman <rms@gnu.org>
2
3 * widget.texi: Use @var instead of capitalization.
4 Clarify many widget type descriptions.
5
6 * emacs.texi: Update ISBN.
7
82006-10-13 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
9
10 * gnus.texi (Other modes): Fix typo. Add alternative index entry for
11 gnus-dired-attach.
12 (Selecting a Group): Fix typo.
13
12006-10-12 Roberto Rodr,Am(Bguez <lanubeblanca@googlemail.com> 142006-10-12 Roberto Rodr,Am(Bguez <lanubeblanca@googlemail.com>
2 15
3 * widget.texi: Fix typos (tiny change) 16 * widget.texi: Fix typos (tiny change)
diff --git a/man/emacs.texi b/man/emacs.texi
index 0249cac3cc3..eb16d633d6d 100644
--- a/man/emacs.texi
+++ b/man/emacs.texi
@@ -71,7 +71,7 @@ Software Foundation raise funds for GNU development.''
71@insertcopying 71@insertcopying
72 72
73@sp 2 73@sp 2
74ISBN 1-882114-06-X @* 74ISBN 1-882114-86-8*
75Published by the Free Software Foundation @* 75Published by the Free Software Foundation @*
7651 Franklin Street, Fifth Floor @* 7651 Franklin Street, Fifth Floor @*
77Boston, MA 02110-1301 USA 77Boston, MA 02110-1301 USA
diff --git a/man/gnus.texi b/man/gnus.texi
index 86f52fded7b..a929bb2b208 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -2139,7 +2139,7 @@ If @code{gnus-auto-select-first} is non-@code{nil}, select an article
2139automatically when entering a group with the @kbd{SPACE} command. 2139automatically when entering a group with the @kbd{SPACE} command.
2140Which article this is is controlled by the 2140Which article this is is controlled by the
2141@code{gnus-auto-select-subject} variable. Valid values for this 2141@code{gnus-auto-select-subject} variable. Valid values for this
2142variable is: 2142variable are:
2143 2143
2144@table @code 2144@table @code
2145 2145
@@ -24471,7 +24471,7 @@ Save table: (spam-stat-save)
24471@subsection Dired 24471@subsection Dired
24472@cindex dired 24472@cindex dired
24473 24473
24474@code{gnus-dired-minor-mode} provided some useful functions for dired 24474@code{gnus-dired-minor-mode} provides some useful functions for dired
24475buffers. It is enabled with 24475buffers. It is enabled with
24476@lisp 24476@lisp
24477(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode) 24477(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode)
@@ -24480,6 +24480,7 @@ buffers. It is enabled with
24480@table @kbd 24480@table @kbd
24481@item C-c C-m C-a 24481@item C-c C-m C-a
24482@findex gnus-dired-attach 24482@findex gnus-dired-attach
24483@cindex attachments, selection via dired
24483Send dired's marked files as an attachment (@code{gnus-dired-attach}). 24484Send dired's marked files as an attachment (@code{gnus-dired-attach}).
24484You will be prompted for a message buffer. 24485You will be prompted for a message buffer.
24485 24486
diff --git a/man/widget.texi b/man/widget.texi
index e273d253fb3..39b62ff3437 100644
--- a/man/widget.texi
+++ b/man/widget.texi
@@ -480,11 +480,11 @@ when not on a button. By default this is @code{global-map}.
480@comment node-name, next, previous, up 480@comment node-name, next, previous, up
481@section Basic Types 481@section Basic Types
482 482
483The syntax of a type specification is given below: 483This is the general syntax of a type specification:
484 484
485@example 485@example
486NAME ::= (NAME [KEYWORD ARGUMENT]... ARGS) 486@var{name} ::= (@var{name} [@var{keyword} @var{argument}]... @var{args})
487 | NAME 487 | @var{name}
488@end example 488@end example
489 489
490Where, @var{name} is a widget name, @var{keyword} is the name of a 490Where, @var{name} is a widget name, @var{keyword} is the name of a
@@ -724,7 +724,7 @@ If non-@code{nil}, allow glyphs to appear on displays where they are supported.
724Syntax: 724Syntax:
725 725
726@example 726@example
727TYPE ::= (link [KEYWORD ARGUMENT]... [ VALUE ]) 727@var{type} ::= (link [@var{keyword} @var{argument}]... [ @var{value} ])
728@end example 728@end example
729 729
730The @var{value}, if present, is used to initialize the @code{:value} 730The @var{value}, if present, is used to initialize the @code{:value}
@@ -749,7 +749,7 @@ String to suffix links.
749Syntax: 749Syntax:
750 750
751@example 751@example
752TYPE ::= (url-link [KEYWORD ARGUMENT]... URL) 752@var{type} ::= (url-link [@var{keyword} @var{argument}]... @var{url})
753@end example 753@end example
754 754
755@findex browse-url-browser-function@r{, and @code{url-link} widget} 755@findex browse-url-browser-function@r{, and @code{url-link} widget}
@@ -764,7 +764,7 @@ When this link is invoked, the @acronym{WWW} browser specified by
764Syntax: 764Syntax:
765 765
766@example 766@example
767TYPE ::= (info-link [KEYWORD ARGUMENT]... ADDRESS) 767@var{type} ::= (info-link [@var{keyword} @var{argument}]... @var{address})
768@end example 768@end example
769 769
770When this link is invoked, the built-in Info reader is started on 770When this link is invoked, the built-in Info reader is started on
@@ -778,7 +778,7 @@ When this link is invoked, the built-in Info reader is started on
778Syntax: 778Syntax:
779 779
780@example 780@example
781TYPE ::= (push-button [KEYWORD ARGUMENT]... [ VALUE ]) 781@var{type} ::= (push-button [@var{keyword} @var{argument}]... [ @var{value} ])
782@end example 782@end example
783 783
784The @var{value}, if present, is used to initialize the @code{:value} 784The @var{value}, if present, is used to initialize the @code{:value}
@@ -803,7 +803,7 @@ String to suffix push buttons.
803Syntax: 803Syntax:
804 804
805@example 805@example
806TYPE ::= (editable-field [KEYWORD ARGUMENT]... [ VALUE ]) 806@var{type} ::= (editable-field [@var{keyword} @var{argument}]... [ @var{value} ])
807@end example 807@end example
808 808
809The @var{value}, if present, is used to initialize the @code{:value} 809The @var{value}, if present, is used to initialize the @code{:value}
@@ -863,7 +863,7 @@ does not rebind the @key{RET} key.
863Syntax: 863Syntax:
864 864
865@example 865@example
866TYPE ::= (menu-choice [KEYWORD ARGUMENT]... TYPE ... ) 866@var{type} ::= (menu-choice [@var{keyword} @var{argument}]... @var{type} ... )
867@end example 867@end example
868 868
869The @var{type} argument represents each possible choice. The widget's 869The @var{type} argument represents each possible choice. The widget's
@@ -904,13 +904,13 @@ The list of types.
904Syntax: 904Syntax:
905 905
906@example 906@example
907TYPE ::= (radio-button-choice [KEYWORD ARGUMENT]... TYPE ... ) 907@var{type} ::= (radio-button-choice [@var{keyword} @var{argument}]... @var{type} ... )
908@end example 908@end example
909 909
910The @var{type} argument represents each possible choice. The widget's 910The component types specify the choices, with one radio button for
911value will be that of the chosen @var{type} argument. This widget will 911each. The widget's value will be that of the chosen @var{type}
912match any value matching at least one of the specified @var{type} 912argument. This widget matches any value that matching at least one of
913arguments. 913the specified @var{type} arguments.
914 914
915The following extra properties are recognized. 915The following extra properties are recognized.
916 916
@@ -971,7 +971,7 @@ you call @code{widget-delete}.
971Syntax: 971Syntax:
972 972
973@example 973@example
974ITEM ::= (item [KEYWORD ARGUMENT]... VALUE) 974@var{item} ::= (item [@var{keyword} @var{argument}]... @var{value})
975@end example 975@end example
976 976
977The @var{value}, if present, is used to initialize the @code{:value} 977The @var{value}, if present, is used to initialize the @code{:value}
@@ -986,7 +986,7 @@ buffer. This widget will only match the specified value.
986Syntax: 986Syntax:
987 987
988@example 988@example
989ITEM ::= (choice-item [KEYWORD ARGUMENT]... VALUE) 989@var{item} ::= (choice-item [@var{keyword} @var{argument}]... @var{value})
990@end example 990@end example
991 991
992The @var{value}, if present, is used to initialize the @code{:value} 992The @var{value}, if present, is used to initialize the @code{:value}
@@ -1003,7 +1003,7 @@ the specified value.
1003Syntax: 1003Syntax:
1004 1004
1005@example 1005@example
1006TYPE ::= (toggle [KEYWORD ARGUMENT]...) 1006@var{type} ::= (toggle [@var{keyword} @var{argument}]...)
1007@end example 1007@end example
1008 1008
1009The widget has two possible states, @samp{on} and @samp{off}, which 1009The widget has two possible states, @samp{on} and @samp{off}, which
@@ -1039,7 +1039,7 @@ This widget has two possible states, @samp{selected} and
1039Syntax: 1039Syntax:
1040 1040
1041@example 1041@example
1042TYPE ::= (checkbox [KEYWORD ARGUMENT]...) 1042@var{type} ::= (checkbox [@var{keyword} @var{argument}]...)
1043@end example 1043@end example
1044 1044
1045@node checklist, editable-list, checkbox, Basic Types 1045@node checklist, editable-list, checkbox, Basic Types
@@ -1050,7 +1050,7 @@ TYPE ::= (checkbox [KEYWORD ARGUMENT]...)
1050Syntax: 1050Syntax:
1051 1051
1052@example 1052@example
1053TYPE ::= (checklist [KEYWORD ARGUMENT]... TYPE ... ) 1053@var{type} ::= (checklist [@var{keyword} @var{argument}]... @var{type} ... )
1054@end example 1054@end example
1055 1055
1056The @var{type} arguments represent each checklist item. The widget's 1056The @var{type} arguments represent each checklist item. The widget's
@@ -1108,7 +1108,7 @@ The list of types.
1108Syntax: 1108Syntax:
1109 1109
1110@example 1110@example
1111TYPE ::= (editable-list [KEYWORD ARGUMENT]... TYPE) 1111@var{type} ::= (editable-list [@var{keyword} @var{argument}]... @var{type})
1112@end example 1112@end example
1113 1113
1114The value is a list, where each member represents one widget of type 1114The value is a list, where each member represents one widget of type
@@ -1168,7 +1168,7 @@ This widget simply group other widgets together.
1168Syntax: 1168Syntax:
1169 1169
1170@example 1170@example
1171TYPE ::= (group [KEYWORD ARGUMENT]... TYPE...) 1171@var{type} ::= (group [@var{keyword} @var{argument}]... @var{type}...)
1172@end example 1172@end example
1173 1173
1174The value is a list, with one member for each @var{type}. 1174The value is a list, with one member for each @var{type}.
@@ -1201,7 +1201,7 @@ of the composite widgets.
1201The syntax for the @code{const} widget is: 1201The syntax for the @code{const} widget is:
1202 1202
1203@example 1203@example
1204TYPE ::= (const [KEYWORD ARGUMENT]... [ VALUE ]) 1204@var{type} ::= (const [@var{keyword} @var{argument}]... [ @var{value} ])
1205@end example 1205@end example
1206 1206
1207The @var{value}, if present, is used to initialize the @code{:value} 1207The @var{value}, if present, is used to initialize the @code{:value}
@@ -1237,7 +1237,7 @@ user to edit it inline in the buffer.
1237The syntax for the @code{sexp} widget is: 1237The syntax for the @code{sexp} widget is:
1238 1238
1239@example 1239@example
1240TYPE ::= (sexp [KEYWORD ARGUMENT]... [ VALUE ]) 1240@var{type} ::= (sexp [@var{keyword} @var{argument}]... [ @var{value} ])
1241@end example 1241@end example
1242 1242
1243@deffn Widget sexp 1243@deffn Widget sexp
@@ -1261,7 +1261,7 @@ following widgets.
1261The syntax for all the atoms are: 1261The syntax for all the atoms are:
1262 1262
1263@example 1263@example
1264TYPE ::= (NAME [KEYWORD ARGUMENT]... [ VALUE ]) 1264@var{type} ::= (@var{construct} [@var{keyword} @var{argument}]... [ @var{value} ])
1265@end example 1265@end example
1266 1266
1267The @var{value}, if present, is used to initialize the @code{:value} 1267The @var{value}, if present, is used to initialize the @code{:value}
@@ -1331,10 +1331,10 @@ either @code{nil} meaning false, or non-@code{nil} meaning true.
1331@subsection Composite Sexp Widgets 1331@subsection Composite Sexp Widgets
1332@cindex composite sexp widgets 1332@cindex composite sexp widgets
1333 1333
1334The syntax for the composite widget is: 1334The syntax for the composite widget construct is:
1335 1335
1336@example 1336@example
1337TYPE ::= (NAME [KEYWORD ARGUMENT]... COMPONENT...) 1337@var{type} ::= (@var{construct} [@var{keyword} @var{argument}]... @var{component}...)
1338@end example 1338@end example
1339 1339
1340@noindent 1340@noindent
@@ -1342,19 +1342,43 @@ where each @var{component} must be a widget type. Each component widget
1342will be displayed in the buffer, and will be editable by the user. 1342will be displayed in the buffer, and will be editable by the user.
1343 1343
1344@deffn Widget cons 1344@deffn Widget cons
1345The value of a @code{cons} widget is a cons-cell where the @sc{car} is 1345The value of a @code{cons} widget must be a cons-cell whose @sc{car}
1346the value of the first component and the @sc{cdr} is the value of the 1346and @sc{cdr} have two specified types. It uses this syntax:
1347second component. There must be exactly two components. 1347
1348@example
1349@var{type} ::= (cons [@var{keyword} @var{argument}]... @var{car-type} @var{cdr-type})
1350@end example
1351@end deffn
1352
1353@deffn Widget choice
1354The @code{choice} widget specifies a set of values that match any one
1355of a fixed set of types. Its syntax is as follows:
1356
1357@example
1358@var{type} ::= (choice [@var{keyword} @var{argument}]... @var{type} ... )
1359@end example
1360
1361The value of a @code{choice} widget can be anything that matches any of the
1362@var{types}.
1348@end deffn 1363@end deffn
1349 1364
1350@deffn Widget list 1365@deffn Widget list
1351The value of a @code{list} widget is a list containing the value of 1366The value of a @code{list} widget must be a list whose element types
1352each of its components. 1367match the specified component types:
1368
1369@example
1370@var{type} ::= (list [@var{keyword} @var{argument}]... @var{component-type}...)
1371@end example
1372
1373Thus, @code{(list string number)} matches lists of two elements,
1374the first being a string and the second being a number.
1353@end deffn 1375@end deffn
1354 1376
1355@deffn Widget vector 1377@deffn Widget vector
1356The value of a @code{vector} widget is a vector containing the value of 1378The @code{vector} widget is like the @code{list} widget but matches
1357each of its component. 1379vectors instead of lists. Thus, @code{(vector string number)} matches
1380vectors of two elements, the first being a string and the second being
1381a number.
1358@end deffn 1382@end deffn
1359 1383
1360The above suffice for specifying fixed size lists and vectors. To get 1384The above suffice for specifying fixed size lists and vectors. To get
@@ -1363,7 +1387,7 @@ variable length lists and vectors, you can use a @code{choice},
1363keyword. If any component of a composite widget has the @code{:inline} 1387keyword. If any component of a composite widget has the @code{:inline}
1364keyword set, its value must be a list which will then be spliced into 1388keyword set, its value must be a list which will then be spliced into
1365the composite. For example, to specify a list whose first element must 1389the composite. For example, to specify a list whose first element must
1366be a file name, and whose remaining arguments should either be the 1390be a file name, and whose remaining elements should either be the
1367symbol @code{t} or two files, you can use the following widget 1391symbol @code{t} or two files, you can use the following widget
1368specification: 1392specification:
1369 1393
@@ -1376,29 +1400,32 @@ specification:
1376@end example 1400@end example
1377 1401
1378The value of a widget of this type will either have the form 1402The value of a widget of this type will either have the form
1379@code{(file t)} or @code{(file string string)}. 1403@code{(file t)} or @code{(file @var{string} @var{string})}.
1380 1404
1381This concept of inline is probably hard to understand. It was certainly 1405This concept of @code{:inline} may be hard to understand. It was
1382hard to implement, so instead of confusing you more by trying to explain 1406certainly hard to implement, so instead of confusing you more by
1383it here, I'll just suggest you meditate over it for a while. 1407trying to explain it here, I'll just suggest you meditate over it for
1384 1408a while.
1385@deffn Widget choice
1386Allows you to edit a sexp which may have one of a fixed set of types.
1387It is currently implemented with the @code{choice-menu} basic widget,
1388and has a similar syntax.
1389@end deffn
1390 1409
1391@deffn Widget set 1410@deffn Widget set
1392Allows you to specify a type which must be a list whose elements all 1411Specifies a type whose values are the lists whose elements all belong
1393belong to the given set. The elements of the list are not significant. 1412to a given set. The order of elements of the list is not significant.
1394This is implemented on top of the @code{checklist} basic widget, and has 1413Here's the syntax:
1395a similar syntax. 1414
1415@example
1416@var{type} ::= (set [@var{keyword} @var{argument}]... @var{permitted-element} ... )
1417@end example
1418
1419Use @code{const} to specify each permitted element, like this:
1420@code{(set (const a) (const b))}.
1396@end deffn 1421@end deffn
1397 1422
1398@deffn Widget repeat 1423@deffn Widget repeat
1399Allows you to specify a variable length list whose members are all of 1424Specifies a list of any number of elements that fit a certain type.
1400the same type. Implemented on top of the @code{editable-list} basic 1425
1401widget, and has a similar syntax. 1426@example
1427@var{type} ::= (repeat [@var{keyword} @var{argument}]... @var{type})
1428@end example
1402@end deffn 1429@end deffn
1403 1430
1404@node Widget Properties, Defining New Widgets, Sexp Types, Top 1431@node Widget Properties, Defining New Widgets, Sexp Types, Top
diff --git a/src/ChangeLog b/src/ChangeLog
index f86c4c6a21c..ce3c7d1435b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,26 @@
12006-10-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * gtkutil.c (get_utf8_string): Remove warnings with casts.
4 (xg_tool_bar_button_cb): Ditto
5 (xg_tool_bar_callback): Ditto.
6
72006-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
8
9 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Remove unused
10 variable ch_dim.
11 (adjust_frame_glyphs_for_window_redisplay): Likewise. Don't allocate
12 menu bar window matrices on non-X systems.
13
14 * mac.c (Fmac_get_preference, Fmac_code_convert_string): Add GCPROs.
15
16 * macterm.c (mac_query_char_extents): Don't return glyph ID if layout
17 adjustment is needed.
18 (mac_load_query_font): Check if width and height are positive.
19
202006-10-14 Richard Stallman <rms@gnu.org>
21
22 * sysdep.c (init_sys_modes): Delete DEFVAR_LISP in the wrong place.
23
12006-10-13 Chong Yidong <cyd@stupidchicken.com> 242006-10-13 Chong Yidong <cyd@stupidchicken.com>
2 25
3 * xdisp.c (decode_mode_spec): Ignore %c and %l constructs in frame 26 * xdisp.c (decode_mode_spec): Ignore %c and %l constructs in frame
diff --git a/src/dispnew.c b/src/dispnew.c
index 394c550fa73..5ace8ac2985 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1786,11 +1786,9 @@ check_matrix_invariants (w)
1786 1786
1787 X and Y are column/row within the frame glyph matrix where 1787 X and Y are column/row within the frame glyph matrix where
1788 sub-matrices for the window tree rooted at WINDOW must be 1788 sub-matrices for the window tree rooted at WINDOW must be
1789 allocated. CH_DIM contains the dimensions of the smallest 1789 allocated. DIM_ONLY_P non-zero means that the caller of this
1790 character that could be used during display. DIM_ONLY_P non-zero 1790 function is only interested in the result matrix dimension, and
1791 means that the caller of this function is only interested in the 1791 matrix adjustments should not be performed.
1792 result matrix dimension, and matrix adjustments should not be
1793 performed.
1794 1792
1795 The function returns the total width/height of the sub-matrices of 1793 The function returns the total width/height of the sub-matrices of
1796 the window tree. If called on a frame root window, the computation 1794 the window tree. If called on a frame root window, the computation
@@ -2038,8 +2036,7 @@ required_matrix_width (w)
2038 2036
2039 2037
2040/* Allocate window matrices for window-based redisplay. W is the 2038/* Allocate window matrices for window-based redisplay. W is the
2041 window whose matrices must be allocated/reallocated. CH_DIM is the 2039 window whose matrices must be allocated/reallocated. */
2042 size of the smallest character that could potentially be used on W. */
2043 2040
2044static void 2041static void
2045allocate_matrices_for_window_redisplay (w) 2042allocate_matrices_for_window_redisplay (w)
@@ -2272,7 +2269,6 @@ static void
2272adjust_frame_glyphs_for_frame_redisplay (f) 2269adjust_frame_glyphs_for_frame_redisplay (f)
2273 struct frame *f; 2270 struct frame *f;
2274{ 2271{
2275 struct dim ch_dim;
2276 struct dim matrix_dim; 2272 struct dim matrix_dim;
2277 int pool_changed_p; 2273 int pool_changed_p;
2278 int window_change_flags; 2274 int window_change_flags;
@@ -2281,10 +2277,6 @@ adjust_frame_glyphs_for_frame_redisplay (f)
2281 if (!FRAME_LIVE_P (f)) 2277 if (!FRAME_LIVE_P (f))
2282 return; 2278 return;
2283 2279
2284 /* Determine the smallest character in any font for F. On
2285 console windows, all characters have dimension (1, 1). */
2286 ch_dim.width = ch_dim.height = 1;
2287
2288 top_window_y = FRAME_TOP_MARGIN (f); 2280 top_window_y = FRAME_TOP_MARGIN (f);
2289 2281
2290 /* Allocate glyph pool structures if not already done. */ 2282 /* Allocate glyph pool structures if not already done. */
@@ -2373,22 +2365,14 @@ static void
2373adjust_frame_glyphs_for_window_redisplay (f) 2365adjust_frame_glyphs_for_window_redisplay (f)
2374 struct frame *f; 2366 struct frame *f;
2375{ 2367{
2376 struct dim ch_dim;
2377 struct window *w; 2368 struct window *w;
2378 2369
2379 xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f)); 2370 xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f));
2380 2371
2381 /* Get minimum sizes. */
2382#ifdef HAVE_WINDOW_SYSTEM
2383 ch_dim.width = FRAME_SMALLEST_CHAR_WIDTH (f);
2384 ch_dim.height = FRAME_SMALLEST_FONT_HEIGHT (f);
2385#else
2386 ch_dim.width = ch_dim.height = 1;
2387#endif
2388
2389 /* Allocate/reallocate window matrices. */ 2372 /* Allocate/reallocate window matrices. */
2390 allocate_matrices_for_window_redisplay (XWINDOW (FRAME_ROOT_WINDOW (f))); 2373 allocate_matrices_for_window_redisplay (XWINDOW (FRAME_ROOT_WINDOW (f)));
2391 2374
2375#ifdef HAVE_X_WINDOWS
2392 /* Allocate/ reallocate matrices of the dummy window used to display 2376 /* Allocate/ reallocate matrices of the dummy window used to display
2393 the menu bar under X when no X toolkit support is available. */ 2377 the menu bar under X when no X toolkit support is available. */
2394#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK) 2378#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
@@ -2412,7 +2396,8 @@ adjust_frame_glyphs_for_window_redisplay (f)
2412 XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f)); 2396 XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f));
2413 allocate_matrices_for_window_redisplay (w); 2397 allocate_matrices_for_window_redisplay (w);
2414 } 2398 }
2415#endif /* not USE_X_TOOLKIT */ 2399#endif /* not USE_X_TOOLKIT && not USE_GTK */
2400#endif /* HAVE_X_WINDOWS */
2416 2401
2417#ifndef USE_GTK 2402#ifndef USE_GTK
2418 /* Allocate/ reallocate matrices of the tool bar window. If we 2403 /* Allocate/ reallocate matrices of the tool bar window. If we
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 18b3607fc6f..2370855248a 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -523,8 +523,8 @@ get_utf8_string (str)
523 char *cp, *up; 523 char *cp, *up;
524 GError *error = NULL; 524 GError *error = NULL;
525 525
526 while (! (cp = g_locale_to_utf8 (p, -1, &bytes_read, 526 while (! (cp = g_locale_to_utf8 ((char *)p, -1, &bytes_read,
527 &bytes_written, &error)) 527 &bytes_written, &error))
528 && error->code == G_CONVERT_ERROR_ILLEGAL_SEQUENCE) 528 && error->code == G_CONVERT_ERROR_ILLEGAL_SEQUENCE)
529 { 529 {
530 ++nr_bad; 530 ++nr_bad;
@@ -541,13 +541,13 @@ get_utf8_string (str)
541 if (cp) g_free (cp); 541 if (cp) g_free (cp);
542 542
543 up = utf8_str = xmalloc (strlen (str) + nr_bad * 4 + 1); 543 up = utf8_str = xmalloc (strlen (str) + nr_bad * 4 + 1);
544 p = str; 544 p = (unsigned char *)str;
545 545
546 while (! (cp = g_locale_to_utf8 (p, -1, &bytes_read, 546 while (! (cp = g_locale_to_utf8 ((char *)p, -1, &bytes_read,
547 &bytes_written, &error)) 547 &bytes_written, &error))
548 && error->code == G_CONVERT_ERROR_ILLEGAL_SEQUENCE) 548 && error->code == G_CONVERT_ERROR_ILLEGAL_SEQUENCE)
549 { 549 {
550 strncpy (up, p, bytes_written); 550 strncpy (up, (char *)p, bytes_written);
551 sprintf (up + bytes_written, "\\%03o", p[bytes_written]); 551 sprintf (up + bytes_written, "\\%03o", p[bytes_written]);
552 up[bytes_written+4] = '\0'; 552 up[bytes_written+4] = '\0';
553 up += bytes_written+4; 553 up += bytes_written+4;
@@ -3362,8 +3362,9 @@ xg_tool_bar_button_cb (widget, event, user_data)
3362 GdkEventButton *event; 3362 GdkEventButton *event;
3363 gpointer user_data; 3363 gpointer user_data;
3364{ 3364{
3365 g_object_set_data (G_OBJECT (user_data), XG_TOOL_BAR_LAST_MODIFIER, 3365 /* Casts to avoid warnings when gpointer is 64 bits and int is 32 bits */
3366 (gpointer) event->state); 3366 gpointer ptr = (gpointer) (EMACS_INT) event->state;
3367 g_object_set_data (G_OBJECT (user_data), XG_TOOL_BAR_LAST_MODIFIER, ptr);
3367 return FALSE; 3368 return FALSE;
3368} 3369}
3369 3370
@@ -3375,7 +3376,8 @@ xg_tool_bar_callback (w, client_data)
3375{ 3376{
3376 /* The EMACS_INT cast avoids a warning. */ 3377 /* The EMACS_INT cast avoids a warning. */
3377 int idx = (int) (EMACS_INT) client_data; 3378 int idx = (int) (EMACS_INT) client_data;
3378 int mod = (int) g_object_get_data (G_OBJECT (w), XG_TOOL_BAR_LAST_MODIFIER); 3379 int mod = (int) (EMACS_INT) g_object_get_data (G_OBJECT (w),
3380 XG_TOOL_BAR_LAST_MODIFIER);
3379 3381
3380 FRAME_PTR f = (FRAME_PTR) g_object_get_data (G_OBJECT (w), XG_FRAME_DATA); 3382 FRAME_PTR f = (FRAME_PTR) g_object_get_data (G_OBJECT (w), XG_FRAME_DATA);
3381 Lisp_Object key, frame; 3383 Lisp_Object key, frame;
diff --git a/src/mac.c b/src/mac.c
index be6953a0d55..d127422ccde 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -4611,6 +4611,7 @@ otherwise. */)
4611 CFStringRef app_id, key_str; 4611 CFStringRef app_id, key_str;
4612 CFPropertyListRef app_plist = NULL, plist; 4612 CFPropertyListRef app_plist = NULL, plist;
4613 Lisp_Object result = Qnil, tmp; 4613 Lisp_Object result = Qnil, tmp;
4614 struct gcpro gcpro1, gcpro2;
4614 4615
4615 if (STRINGP (key)) 4616 if (STRINGP (key))
4616 key = Fcons (key, Qnil); 4617 key = Fcons (key, Qnil);
@@ -4627,6 +4628,8 @@ otherwise. */)
4627 if (!NILP (hash_bound)) 4628 if (!NILP (hash_bound))
4628 CHECK_NUMBER (hash_bound); 4629 CHECK_NUMBER (hash_bound);
4629 4630
4631 GCPRO2 (key, format);
4632
4630 BLOCK_INPUT; 4633 BLOCK_INPUT;
4631 4634
4632 app_id = kCFPreferencesCurrentApplication; 4635 app_id = kCFPreferencesCurrentApplication;
@@ -4681,6 +4684,8 @@ otherwise. */)
4681 4684
4682 UNBLOCK_INPUT; 4685 UNBLOCK_INPUT;
4683 4686
4687 UNGCPRO;
4688
4684 return result; 4689 return result;
4685} 4690}
4686 4691
@@ -4846,6 +4851,7 @@ On successful conversion, return the result string, else return nil. */)
4846 Lisp_Object string, source, target, normalization_form; 4851 Lisp_Object string, source, target, normalization_form;
4847{ 4852{
4848 Lisp_Object result = Qnil; 4853 Lisp_Object result = Qnil;
4854 struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
4849 CFStringEncoding src_encoding, tgt_encoding; 4855 CFStringEncoding src_encoding, tgt_encoding;
4850 CFStringRef str = NULL; 4856 CFStringRef str = NULL;
4851 4857
@@ -4856,6 +4862,8 @@ On successful conversion, return the result string, else return nil. */)
4856 CHECK_SYMBOL (target); 4862 CHECK_SYMBOL (target);
4857 CHECK_SYMBOL (normalization_form); 4863 CHECK_SYMBOL (normalization_form);
4858 4864
4865 GCPRO4 (string, source, target, normalization_form);
4866
4859 BLOCK_INPUT; 4867 BLOCK_INPUT;
4860 4868
4861 src_encoding = get_cfstring_encoding_from_lisp (source); 4869 src_encoding = get_cfstring_encoding_from_lisp (source);
@@ -4896,6 +4904,8 @@ On successful conversion, return the result string, else return nil. */)
4896 4904
4897 UNBLOCK_INPUT; 4905 UNBLOCK_INPUT;
4898 4906
4907 UNGCPRO;
4908
4899 return result; 4909 return result;
4900} 4910}
4901 4911
diff --git a/src/macterm.c b/src/macterm.c
index 6902ac72304..d4ce2a1b298 100644
--- a/src/macterm.c
+++ b/src/macterm.c
@@ -1198,7 +1198,12 @@ mac_query_char_extents (style, c,
1198 err1 = ATSUGetGlyphInfo (text_layout, kATSUFromTextBeginning, 1198 err1 = ATSUGetGlyphInfo (text_layout, kATSUFromTextBeginning,
1199 kATSUToTextEnd, &count, 1199 kATSUToTextEnd, &count,
1200 &glyph_info_array); 1200 &glyph_info_array);
1201 if (err1 == noErr) 1201 if (err1 == noErr
1202 /* Make sure that we don't have to make layout
1203 adjustments. */
1204 && glyph_info_array.glyphs[0].deltaY == 0.0f
1205 && glyph_info_array.glyphs[0].idealX == 0.0f
1206 && glyph_info_array.glyphs[0].screenX == 0)
1202 { 1207 {
1203 xassert (glyph_info_array.glyphs[0].glyphID); 1208 xassert (glyph_info_array.glyphs[0].glyphID);
1204 *cg_glyph = glyph_info_array.glyphs[0].glyphID; 1209 *cg_glyph = glyph_info_array.glyphs[0].glyphID;
@@ -7963,7 +7968,8 @@ mac_load_query_font (f, fontname)
7963 NULL 7968 NULL
7964#endif 7969#endif
7965 ); 7970 );
7966 if (err != noErr) 7971 if (err != noErr
7972 || space_bounds->width <= 0 || FONT_HEIGHT (font) <= 0)
7967 { 7973 {
7968 mac_unload_font (&one_mac_display_info, font); 7974 mac_unload_font (&one_mac_display_info, font);
7969 return NULL; 7975 return NULL;
diff --git a/src/sysdep.c b/src/sysdep.c
index 6d630c4832f..07f5f2e8a30 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -1421,16 +1421,6 @@ init_sys_modes (tty_out)
1421{ 1421{
1422 struct emacs_tty tty; 1422 struct emacs_tty tty;
1423 1423
1424#ifdef MAC_OS8
1425/* cus-start.el complains if delete-exited-processes is not defined */
1426#ifndef subprocesses
1427 DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes,
1428 doc: /* *Non-nil means delete processes immediately when they exit.
1429nil means don't delete them until `list-processes' is run. */);
1430 delete_exited_processes = 0;
1431#endif
1432#endif /* MAC_OS8 */
1433
1434#ifdef VMS 1424#ifdef VMS
1435#if 0 1425#if 0
1436 static int oob_chars[2] = {0, 1 << 7}; /* catch C-g's */ 1426 static int oob_chars[2] = {0, 1 << 7}; /* catch C-g's */