summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2006-12-03 12:15:03 +0000
committerKaroly Lorentey <lorentey@elte.hu>2006-12-03 12:15:03 +0000
commit14bcc1e098410087a837313e2fc822319ff2e8ca (patch)
treee468aebbb8d84438d81eb08bf6b77bfeaf664ea7
parent5665a02fd1d009506f246d5f77896e3995127954 (diff)
parent704ec54b3f2a40026ea7835b76e040c7335a56c1 (diff)
downloademacs-14bcc1e098410087a837313e2fc822319ff2e8ca.tar.gz
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 @@
+2006-10-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * admin.el (set-version): Set version numbers in "mac" subdirectory.
+
2006-10-03 Kenichi Handa <handa@m17n.org>
* 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.
* BUGS
-** hashiz@tomba.meridiani.jp, Oct 6: bootstrap failure on FreeBSD 6.2
-Can't be reproduced on GNU/Linux.
+** Monnier, Oct 15: Strange behavior of C-u in the presence of sit-for in p-c-h
+
+** miyoshi@meadowy.org, Oct 16: Emacs allocates unnecessary memory
+
+** david.reitter@gmail.com, Oct 16: url-retrieve may cause hang
+
+** id.brep@gmail.com, Oct 17: `.newsrc.eld' saves chinese group name in wrong coding
+
+** bojohan+mail@dd.chalmers.se, Oct 17: Formatting `interactive' strings.
* DOCUMENTATION
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."
(comma-version
(concat (car version-components) ","
(cadr version-components) ","
- (cadr (cdr version-components)) ","
+ (cadr (cdr version-components)) ","
(cadr (cdr (cdr version-components)))))
(comma-space-version
(concat (car version-components) ", "
(cadr version-components) ", "
- (cadr (cdr version-components)) ", "
+ (cadr (cdr version-components)) ", "
(cadr (cdr (cdr version-components))))))
(set-version-in-file root "nt/emacs.rc" comma-version
(rx (and "FILEVERSION" (1+ space)
@@ -116,7 +116,43 @@ Root must be the root of an Emacs source tree."
(set-version-in-file root "nt/emacs.rc" comma-space-version
(rx (and "\"ProductVersion\"" (0+ space) ?,
(0+ space) ?\" (submatch (1+ (in "0-9, ")))
- "\\0\"")))))
+ "\\0\"")))
+ ;; Some files in the "mac" subdirectory also contain the version
+ ;; number.
+ (set-version-in-file
+ root "mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings"
+ version (rx (and "CFBundleShortVersionString" (0+ space) ?= (0+ space) ?\"
+ (submatch (1+ (in "0-9."))))))
+ (set-version-in-file
+ root "mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings"
+ version (rx (and "CFBundleGetInfoString" (0+ space) ?= (0+ space) ?\"
+ (submatch (1+ (in "0-9."))))))
+ (set-version-in-file root "mac/src/Emacs.r" (car version-components)
+ (rx (and "GNU Emacs " (submatch (1+ (in "0-9")))
+ " for Mac OS")))
+ (set-version-in-file root "mac/src/Emacs.r" (car version-components)
+ (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\,
+ (0+ space) "/* Major revision in BCD */")))
+ (set-version-in-file root "mac/src/Emacs.r" (cadr version-components)
+ (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\,
+ (0+ space) "/* Minor revision in BCD */")))
+ (set-version-in-file root "mac/src/Emacs.r" (cadr (cdr version-components))
+ (rx (and (submatch (1+ (in "0-9"))) (0+ space) ?\,
+ (0+ space) "/* Non-final release # */")))
+ (set-version-in-file root "mac/src/Emacs.r" version
+ (rx (and (submatch (1+ (in "0-9."))) (0+ space) ?\" ?\,
+ (0+ space) "/* Short version number */")))
+ (set-version-in-file root "mac/src/Emacs.r" version
+ (rx (and "/* Short version number */" (0+ space) ?\"
+ (submatch (1+ (in "0-9."))))))
+ (let* ((third-component (string-to-number (cadr (cdr version-components))))
+ (release (cond ((>= third-component 90) "alpha")
+ ((>= third-component 50) "development")
+ (t "final"))))
+ (set-version-in-file
+ root "mac/src/Emacs.r" release
+ (rx (and (submatch (1+ (in "a-z"))) (0+ space) ?\, (0+ space)
+ "/* development, alpha, beta, or final (release) */"))))))
;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5
;; 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 @@
+2006-10-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * progmodes/ada-mode.el (ada-83-string-keywords)
+ (ada-last-which-function-line ada-no-auto-case, ada-indent-region)
+ (ada-which-compiler, ada-align-modes, ada-adjust-case-buffer)
+ (ada-looking-at-semi-private, ada-get-body-name):
+ Fix typos in docstrings.
+ (ada-create-case-exception, ada-create-case-exception-substring):
+ Fix typos in error messages.
+ (ada-goto-matching-end, ada-narrow-to-defun): Doc fixes.
+
+2006-10-18 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * term/x-win.el (res-geometry): Don't set geometry from Xresources
+ to default-frame-alist if default-frame-alist already contains
+ width/height.
+
+2006-10-18 Richard Stallman <rms@gnu.org>
+
+ * emacs-lisp/pp.el (pp-eval-expression): Use `X' to read value.
+ Non-interactive arg is the value, not the expression.
+
+ * simple.el (read-expression-map): Just set it, no defvar.
+
+ * subr.el (insert-for-yank-1): If last inserted char has
+ properties, mark them as rear-nonsticky.
+
+ * recentf.el (recentf-mode): Doc fix.
+
+ * facemenu.el (facemenu-add-new-face): Defend against symbol
+ that isn't a face name.
+
+ * dired-aux.el (dired-do-copy): Doc fix.
+
+2006-10-18 Chong Yidong <cyd@stupidchicken.com>
+
+ * simple.el (line-move-1): Ignore fields when moving to the
+ beginning of line to avoid getting point stuck.
+
+2006-10-18 Martin Rudalics <rudalics@gmx.at>
+
+ * textmodes/flyspell.el (flyspell-word-search-backward): Set
+ inhibit-point-motion-hooks to avoid looping due to intangibile
+ text.
+
+2006-10-16 Richard Stallman <rms@gnu.org>
+
+ * help-fns.el (describe-function-1): Special case optimization
+ for self-insert-command.
+
+2006-10-16 Kim F. Storm <storm@cua.dk>
+
+ * ido.el (ido-reread-directory): Work in `dir' mode too.
+
+2006-10-15 Martin Rudalics <rudalics@gmx.at>
+
+ * textmodes/table.el: Require 'regexp-opt.
+
+2006-10-15 Lennart Borgman <lennart.borgman.073@student.lu.se>
+
+ * progmodes/flymake.el (flymake-get-project-include-dirs-imp):
+ Use shell-quote-argument.
+
+ * shell.el (explicit-bash-args): Likewise.
+
+ * progmodes/ada-xref.el (ada-find-in-src-path): Likewise.
+ Use grep -E rather than egrep.
+
+2006-10-15 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org>
+
+ * ido.el (ido-exhibit): Allow `-', `_', and trailing `$' in user id.
+
+2006-10-15 Kim F. Storm <storm@cua.dk>
+
+ * filesets.el (filesets-run-cmd--repl-fn): Use shell-quote-argument.
+
+2006-10-14 Lennart Borgman <lennart.borgman.073@student.lu.se>
+
+ * filesets.el (filesets-cmd-shell-command): Quote buffer-file-name
+ to protect whitespace and metacharacters from the shell.
+
2006-10-13 Giorgos Keramidas <keramida@ceid.upatras.gr> (tiny change)
- * apropos.el (apropos-pattern-quoted): Fix a typo in a doc
- string.
+ * apropos.el (apropos-pattern-quoted): Fix a typo in a doc string.
2006-10-13 Eli Zaretskii <eliz@gnu.org>
* subr.el (start-process-shell-command): Doc fix.
+2006-10-13 Andrea Russo <rastandy@salug.it> (tiny change)
+
+ * info-look.el <maxima-mode, inferior-maxima-mode>: Allow [0-9] in
+ the regexp for Maxima symbols.
+
2006-10-13 Stefan Monnier <monnier@iro.umontreal.ca>
* vc-hooks.el (vc-ignore-dir-regexp): Make it into a defcustom.
@@ -19,8 +104,13 @@
2006-10-12 Carsten Dominik <dominik@science.uva.nl>
- * textmodes/reftex-global.el (reftex-create-tags-file): Quote file
- arguments.
+ * textmodes/reftex-global.el (reftex-create-tags-file):
+ Quote file arguments.
+
+2006-10-12 Richard Stallman <rms@gnu.org>
+
+ * files.el (file-name-history): Add defvar.
+ (save-some-buffers-action-alist): Improve description strings.
2006-10-12 Andreas Schwab <schwab@suse.de>
@@ -380,7 +470,7 @@
was inverted;
Support `comment-column' = 0.
-2006-10-11 Martin Rudalics <rudalics@gmx.at>
+2006-10-11 Martin Rudalics <rudalics@gmx.at>
* dnd.el (dnd-handle-one-url): Fix typo in doc-string.
* help-at-pt.el (scan-buf-move-to-region): Likewise.
@@ -424,8 +514,8 @@
2006-10-08 Nick Roberts <nickrob@snap.net.nz>
- * progmodes/gdb-ui.el (gdb-speedbar-expand-node): Burp if
- GUD buffer has been killed.
+ * progmodes/gdb-ui.el (gdb-speedbar-expand-node):
+ Burp if GUD buffer has been killed.
2006-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
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,
and new copies of these files are made in that directory
with the same names that the files currently have. The default
suggested for the target directory depends on the value of
-`dired-dwim-target', which see."
+`dired-dwim-target', which see.
+
+This command copies symbolic links by creating new ones,
+like `cp -d'."
(interactive "P")
(let ((dired-recursive-copies dired-recursive-copies))
(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)."
(princ (pp-to-string object) (or stream standard-output)))
;;;###autoload
-(defun pp-eval-expression (expression)
- "Evaluate EXPRESSION and pretty-print value into a new display buffer.
-If the pretty-printed value fits on one line, the message line is used
-instead. The value is also consed onto the front of the list
-in the variable `values'."
- (interactive "xPp-eval: ")
- (setq values (cons (eval expression) values))
+(defun pp-eval-expression (expval)
+ "Evaluate an expression, then pretty-print value EXPVAL into a new buffer.
+If pretty-printed EXPVAL fits on one line, display it in the echo
+area instead. Also add EXPVAL to the front of the list
+in the variable `values'.
+
+Non-interactively, the argument is the value, EXPVAL, not the expression
+to evaluate."
+ (interactive "XPp-eval: ")
+ (setq values (cons expval values))
(let* ((old-show-function temp-buffer-show-function)
;; Use this function to display the buffer.
;; 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."
(cond ((facemenu-iterate ; check if equivalent face is already in the menu
(lambda (m) (and (listp m)
(symbolp (car m))
+ ;; Avoid error in face-equal
+ ;; when a non-face is erroneously present.
+ (facep (car m))
(face-equal (car m) symbol)))
(cdr (symbol-function menu))))
;; 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."
((equal arg "<file-name>")
(buffer-file-name))
((equal arg "<<file-name>>")
- (filesets-quote (buffer-file-name)))
+ (shell-quote-argument (buffer-file-name)))
(t
arg))))
@@ -1701,7 +1701,7 @@ Replace <file-name> or <<file-name>> with filename."
ok)
t)))
(when ok
- (let ((cmd (format txt (buffer-file-name))))
+ (let ((cmd (format txt (shell-quote-argument (buffer-file-name)))))
(message "Filesets: %s" cmd)
(filesets-cmd-show-result cmd
(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 @@
+2006-10-13 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
+
+ * mm-uu.el (mm-uu-pgp-signed-extract-1): Use RFC 2440 definition of
+ "blank line" when searching for end of armor headers.
+
+2006-10-11 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gmm-utils.el (gmm-write-region): Fix variable name.
+
+2006-10-10 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gmm-utils.el (gmm-write-region): New function based on compatibility
+ code from `mm-make-temp-file'.
+
+ * mm-util.el (mm-make-temp-file): Use `gmm-write-region'.
+
+ * nnmaildir.el (nnmaildir--update-nov)
+ (nnmaildir-request-replace-article, nnmaildir-request-accept-article):
+ Use `gmm-write-region'.
+
2006-10-04 Reiner Steib <Reiner.Steib@gmx.de>
* 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."
(string-match "^\\(.+\\)-mode$" mode)
(match-string 1 mode))))))
+(defun gmm-write-region (start end filename &optional append visit
+ lockname mustbenew)
+ "Compatibility function for `write-region'.
+
+In XEmacs, the seventh argument of `write-region' specifies the
+coding-system."
+ (if (and mustbenew
+ (or (featurep 'xemacs)
+ (= emacs-major-version 20)))
+ (if (file-exists-p filename)
+ (signal 'file-already-exists
+ (list "File exists" filename))
+ (write-region start end filename append visit lockname))
+ (write-region start end filename append visit lockname mustbenew)))
+
(provide 'gmm-utils)
;; 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."
(setq file (concat file suffix)))
(if dir-flag
(make-directory file)
- (if (or (featurep 'xemacs)
- (= emacs-major-version 20))
- ;; NOTE: This is unsafe if Emacs 20
- ;; users and XEmacs users don't use
- ;; a secure temp directory.
- (if (file-exists-p file)
- (signal 'file-already-exists
- (list "File exists" file))
- (write-region "" nil file nil 'silent))
- (write-region "" nil file nil 'silent
- nil 'excl)))
+ ;; NOTE: This is unsafe if Emacs 20
+ ;; users and XEmacs users don't use
+ ;; a secure temp directory.
+ (gmm-write-region "" nil file nil 'silent
+ nil 'excl))
nil)
(file-already-exists t)
;; 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."
mm-security-handle 'gnus-details
(format "Clear verification not supported by `%s'.\n" mml2015-use))))
(goto-char (point-min))
- (if (search-forward "\n\n" nil t)
+ (if (re-search-forward "\n[\t ]*\n" nil t)
(delete-region (point-min) (point)))
(if (re-search-forward mm-uu-pgp-beginning-signature nil t)
(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.")
(prin1 (vector storage-version num msgid nov) (current-buffer))
(setq file (concat novfile ":"))
(nnmaildir--unlink file)
- (write-region (point-min) (point-max) file nil 'no-message nil 'excl))
+ (gmm-write-region (point-min) (point-max) file nil 'no-message nil
+ 'excl))
(rename-file file novfile 'replace)
(setf (nnmaildir--art-msgid article) msgid)
nov)))
@@ -1246,8 +1247,8 @@ by nnmaildir-request-article.")
(throw 'return nil))
(save-excursion
(set-buffer buffer)
- (write-region (point-min) (point-max) tmpfile nil 'no-message nil
- 'excl))
+ (gmm-write-region (point-min) (point-max) tmpfile nil 'no-message nil
+ 'excl))
(unix-sync) ;; no fsync :(
(rename-file tmpfile (concat (nnmaildir--cur dir) file suffix) 'replace)
t)))
@@ -1341,8 +1342,8 @@ by nnmaildir-request-article.")
(condition-case nil
(add-name-to-file nnmaildir--file tmpfile)
(error
- (write-region (point-min) (point-max) tmpfile nil 'no-message nil
- 'excl)
+ (gmm-write-region (point-min) (point-max) tmpfile nil 'no-message nil
+ 'excl)
(unix-sync))) ;; no fsync :(
(nnheader-cancel-timer 24h)
(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')."
(princ ".")
(terpri)
(when (commandp function)
- (let* ((remapped (command-remapping function))
- (keys (where-is-internal
- (or remapped function) overriding-local-map nil nil))
- non-modified-keys)
- ;; Which non-control non-meta keys run this command?
- (dolist (key keys)
- (if (member (event-modifiers (aref key 0)) '(nil (shift)))
- (push key non-modified-keys)))
- (when remapped
- (princ "It is remapped to `")
- (princ (symbol-name remapped))
- (princ "'"))
-
- (when keys
- (princ (if remapped " which is bound to " "It is bound to "))
- ;; FIXME: This list can be very long (f.ex. for self-insert-command).
- ;; If there are many, remove them from KEYS.
- (if (< (length non-modified-keys) 10)
- (princ (mapconcat 'key-description keys ", "))
- (dolist (key non-modified-keys)
- (setq keys (delq key keys)))
- (if keys
- (progn
- (princ (mapconcat 'key-description keys ", "))
- (princ ", and many ordinary text characters"))
- (princ "many ordinary text characters"))))
- (when (or remapped keys non-modified-keys)
- (princ ".")
- (terpri))))
+ (if (and (eq function 'self-insert-command)
+ (eq (key-binding "a") 'self-insert-command)
+ (eq (key-binding "b") 'self-insert-command)
+ (eq (key-binding "c") 'self-insert-command))
+ (princ "It is bound to many ordinary text characters.\n")
+ (let* ((remapped (command-remapping function))
+ (keys (where-is-internal
+ (or remapped function) overriding-local-map nil nil))
+ non-modified-keys)
+ ;; Which non-control non-meta keys run this command?
+ (dolist (key keys)
+ (if (member (event-modifiers (aref key 0)) '(nil (shift)))
+ (push key non-modified-keys)))
+ (when remapped
+ (princ "It is remapped to `")
+ (princ (symbol-name remapped))
+ (princ "'"))
+
+ (when keys
+ (princ (if remapped " which is bound to " "It is bound to "))
+ ;; If lots of ordinary text characters run this command,
+ ;; don't mention them one by one.
+ (if (< (length non-modified-keys) 10)
+ (princ (mapconcat 'key-description keys ", "))
+ (dolist (key non-modified-keys)
+ (setq keys (delq key keys)))
+ (if keys
+ (progn
+ (princ (mapconcat 'key-description keys ", "))
+ (princ ", and many ordinary text characters"))
+ (princ "many ordinary text characters"))))
+ (when (or remapped keys non-modified-keys)
+ (princ ".")
+ (terpri)))))
(let* ((arglist (help-function-arglist def))
(doc (documentation function))
(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."
May be useful if cached version is no longer valid, but directory
timestamp has not changed (e.g. with ftp or on Windows)."
(interactive)
- (if (and ido-mode (eq ido-cur-item 'file))
+ (if (and ido-mode (memq ido-cur-item '(file dir)))
(progn
(if (ido-is-unc-root)
(setq ido-unc-hosts-cache t)
@@ -4168,7 +4168,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'."
(setq refresh t))
((string-equal contents "./")
(setq refresh t))
- ((string-match "\\`~[a-zA-Z0-9]+/\\'" contents)
+ ((string-match "\\`~[-_a-zA-Z0-9]+[$]?/\\'" contents)
(ido-trace "new home" contents)
(ido-set-current-home contents)
(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'.")
(decoded (base64-decode-string challenge))
(hash (rfc2104-hash 'md5 64 16 passwd decoded))
(response (concat (smtpmail-cred-user cred) " " hash))
+ ;; Osamu Yamane <yamane@green.ocn.ne.jp>:
+ ;; SMTP auth fails because the SMTP server identifies
+ ;; only the first part of the string (delimited by
+ ;; new line characters) as a response from the
+ ;; client, and the rest as distinct commands.
+
+ ;; In my case, the response string is 80 characters
+ ;; long. Without the no-line-break option for
+ ;; base64-encode-sting, only the first 76 characters
+ ;; are taken as a response to the server, and the
+ ;; authentication fails.
(encoded (base64-encode-string response t)))
(smtpmail-send-command process (format "%s" encoded))
(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
to be used for that word in Ada files. If the line starts with the
character *, then the exception will be used for substrings that either
start at the beginning of a word or after a _ character, and end either
-at the end of the word or at a _ character. Each line can be terminated by
-a comment."
+at the end of the word or at a _ character. Each line can be terminated
+by a comment."
:type '(repeat (file))
:group 'ada)
@@ -439,10 +439,10 @@ An example is:
(defcustom ada-which-compiler 'gnat
"*Name of the compiler to use.
This will determine what features are made available through the Ada mode.
-The possible choices are :
+The possible choices are:
`gnat': Use Ada Core Technologies' Gnat compiler. Add some cross-referencing
- features
-`generic': Use a generic compiler"
+ features.
+`generic': Use a generic compiler."
:type '(choice (const gnat)
(const generic))
:group 'ada)
@@ -485,7 +485,7 @@ The extensions should include a `.' if needed.")
"reverse" "select" "separate" "subtype" "task" "terminate" "then"
"type" "use" "when" "while" "with" "xor")
"List of Ada keywords.
-This variable is used to define `ada-83-keywords' and `ada-95-keywords'"))
+This variable is used to define `ada-83-keywords' and `ada-95-keywords'."))
(defvar ada-ret-binding nil
"Variable to save key binding of RET when casing is activated.")
@@ -532,7 +532,7 @@ See `align-mode-alist' for more information.")
(valid . (lambda() (not (ada-in-comment-p))))
(modes . '(ada-mode)))
)
- "Ada support for align.el >= 2.8
+ "Ada support for align.el >= 2.8.
This variable defines several rules to use to align different lines.")
(defconst ada-align-region-separate
@@ -1439,7 +1439,7 @@ The standard casing rules will no longer apply to this word."
((listp ada-case-exception-file)
(setq file-name (car ada-case-exception-file)))
(t
- (error (concat "No exception file specified. "
+ (error (concat "No exception file specified. "
"See variable ada-case-exception-file"))))
(set-syntax-table ada-mode-symbol-syntax-table)
@@ -1478,7 +1478,7 @@ word itself has a special casing."
((listp ada-case-exception-file)
(car ada-case-exception-file))
(t
- (error (concat "No exception file specified. "
+ (error (concat "No exception file specified. "
"See variable ada-case-exception-file"))))))
;; Find the substring to define as an exception. Order is: the parameter,
@@ -1593,8 +1593,8 @@ word itself has a special casing."
(defun ada-adjust-case-identifier ()
"Adjust case of the previous identifier.
-The auto-casing is done according to the value of `ada-case-identifier' and
-the exceptions defined in `ada-case-exception-file'."
+The auto-casing is done according to the value of `ada-case-identifier'
+and the exceptions defined in `ada-case-exception-file'."
(interactive)
(if (or (equal ada-case-exception '())
(equal (char-after) ?_))
@@ -1743,7 +1743,7 @@ ARG is ignored, and is there for compatibility with `capitalize-word' only."
(defun ada-no-auto-case (&optional arg)
"Do nothing.
This function can be used for the auto-casing variables in the Ada mode, to
-adapt to unusal auto-casing schemes. Since it does nothing, you can for
+adapt to unusal auto-casing schemes. Since it does nothing, you can for
instance use it for `ada-case-identifier' if you don't want any special
auto-casing for identifiers, whereas keywords have to be lower-cased.
See also `ada-auto-case' to disable auto casing altogether."
@@ -1806,7 +1806,7 @@ Attention: This function might take very long for big regions!"
(set-syntax-table previous-syntax-table))))
(defun ada-adjust-case-buffer ()
- "Adjusts the case of all words in the whole buffer.
+ "Adjust the case of all words in the whole buffer.
ATTENTION: This function might take very long for big buffers!"
(interactive "*")
(ada-adjust-case-region (point-min) (point-max)))
@@ -2138,7 +2138,7 @@ Return the equivalent internal parameter list."
(ada-indent-current))
(forward-line 1)
(setq block-done (1+ block-done)))
- (message "indenting ... done")))
+ (message "Indenting ... done")))
(defun ada-indent-newline-indent ()
"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'."
(defun ada-goto-matching-end (&optional nest-level noerror)
"Move point to the end of a block.
Which block depends on the value of NEST-LEVEL, which defaults to zero.
-If NOERROR is non-nil, it only returns nil if found no matching start."
+If NOERROR is non-nil, it only returns nil if no matching start found."
(let ((nest-count (or nest-level 0))
(regex (eval-when-compile
(concat "\\<"
@@ -4058,7 +4058,7 @@ Assumes point to be at the end of a statement."
(defun ada-looking-at-semi-private ()
"Return t if looking at the start of a private section in a package.
-Returns nil if the private is part of the package name, as in
+Return nil if the private is part of the package name, as in
'private package A is...' (this can only happen at top level)."
(save-excursion
(and (looking-at "\\<private\\>")
@@ -4968,7 +4968,7 @@ Redefines the function `ff-which-function-are-we-in'."
(defvar ada-last-which-function-line -1
- "Last on which `ada-which-function' was called.")
+ "Last line on which `ada-which-function' was called.")
(defvar ada-last-which-function-subprog 0
"Last subprogram name returned by `ada-which-function'.")
(make-variable-buffer-local 'ada-last-which-function-subprog)
@@ -5062,7 +5062,7 @@ Since the search can be long, the results are cached."
(defun ada-get-body-name (&optional spec-name)
"Return the file name for the body of SPEC-NAME.
If SPEC-NAME is nil, return the body for the current package.
-Returns nil if no body was found."
+Return nil if no body was found."
(interactive)
(unless spec-name (setq spec-name (buffer-file-name)))
@@ -5223,7 +5223,7 @@ Returns nil if no body was found."
"Make text outside current subprogram invisible.
The subprogram visible is the one that contains or follow point.
Optional ARG is ignored.
-Use `M-x widen' to go back to the full visibility for the buffer."
+Use \\[widen] to go back to the full visibility for the buffer."
(interactive)
(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."
(set-buffer (get-buffer-create "*grep*"))
(while dirs
(insert (shell-command-to-string
- (concat "egrep -i -h '^X|" regexp "( |$)' "
- (file-name-as-directory (car dirs)) "*.ali")))
+ (concat
+ "grep -E -i -h "
+ (shell-quote-argument (concat "^X|" regexp "( |$)"))
+ " "
+ (shell-quote-argument (file-name-as-directory (car dirs)))
+ "*.ali")))
(set 'dirs (cdr dirs)))
;; 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'."
(progn
(flymake-get-project-include-dirs-from-cache basedir))
;;else
- (let* ((command-line (concat "make -C\"" basedir "\" DUMPVARS=INCLUDE_DIRS dumpvars"))
+ (let* ((command-line (concat "make -C "
+ (shell-quote-argument basedir)
+ " DUMPVARS=INCLUDE_DIRS dumpvars"))
(output (shell-command-to-string command-line))
(lines (flymake-split-string output "\n"))
(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.
Returns non-nil if the new state is enabled.
When recentf mode is enabled, it maintains a menu for visiting files
-that were operated on recently.
-
-\\{recentf-mode-map}"
+that were operated on recently."
:global t
:group 'recentf
: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."
(equal name "bash")
(file-executable-p prog)
(string-match "bad option"
- (shell-command-to-string (concat prog " --noediting"))))
+ (shell-command-to-string
+ (concat (shell-quote-argument prog)
+ " --noediting"))))
'("-i")
'("--noediting" "-i")))
"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'."
(single-key-description char))
encoding-msg pos total percent col hscroll))))))
-(defvar read-expression-map
- (let ((m (make-sparse-keymap)))
- (define-key m "\M-\t" 'lisp-complete-symbol)
- (set-keymap-parent m minibuffer-local-map)
- m)
- "Minibuffer keymap used for reading Lisp expressions.")
+;; Initialize read-expression-map. It is defined at C level.
+(let ((m (make-sparse-keymap)))
+ (define-key m "\M-\t" 'lisp-complete-symbol)
+ (set-keymap-parent m minibuffer-local-map)
+ (setq read-expression-map m))
(defvar read-expression-history nil)
@@ -3617,7 +3616,14 @@ Outline mode sets this."
;; The logic of this is the same as the loop above,
;; it just goes in the other direction.
(while (and (< arg 0) (not done))
- (beginning-of-line)
+ ;; For completely consistency with the forward-motion
+ ;; case, we should call beginning-of-line here.
+ ;; However, if point is inside a field and on a
+ ;; continued line, the call to (vertical-motion -1)
+ ;; below won't move us back far enough; then we return
+ ;; to the same column in line-move-finish, and point
+ ;; gets stuck -- cyd
+ (forward-line 0)
(cond
((bobp)
(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
(unless (nth 2 handler) ;; NOEXCLUDE
(remove-yank-excluded-properties opoint (point)))
+
+ ;; If last inserted char has properties, mark them as rear-nonsticky.
+ (if (and (> end opoint)
+ (text-properties-at (1- end)))
+ (put-text-property (1- end) end 'rear-nonsticky t))
+
(if (eq yank-undo-function t) ;; not set by FUNCTION
(setq yank-undo-function (nth 3 handler))) ;; UNDO
(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.")
(cons '(user-size . t) parsed))))
;; All geometry parms apply to the initial frame.
(setq initial-frame-alist (append initial-frame-alist parsed))
- ;; The size parms apply to all frames.
- (if (assq 'height parsed)
+ ;; The size parms apply to all frames. Don't set it if there are
+ ;; sizes there already (from command line).
+ (if (and (assq 'height parsed)
+ (not (assq 'height default-frame-alist)))
(setq default-frame-alist
(cons (cons 'height (cdr (assq 'height parsed)))
default-frame-alist)))
- (if (assq 'width parsed)
+ (if (and (assq 'width parsed)
+ (not (assq 'width default-frame-alist)))
(setq default-frame-alist
(cons (cons 'width (cdr (assq 'width parsed)))
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."
(defun flyspell-word-search-backward (word bound)
(save-excursion
(let ((r '())
+ (inhibit-point-motion-hooks t)
p)
(while (and (not r) (setq p (search-backward word bound t)))
(let ((lw (flyspell-get-word '())))
@@ -973,6 +974,7 @@ Mostly we check word delimiters."
(defun flyspell-word-search-forward (word bound)
(save-excursion
(let ((r '())
+ (inhibit-point-motion-hooks t)
p)
(while (and (not r) (setq p (search-forward word bound t)))
(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 @@
;;; Code:
+(require 'regexp-opt)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
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 @@
+2006-10-16 Magnus Henoch <mange@freemail.hu>
+
+ * url-http.el (url-https-create-secure-wrapper): Always use tls
+ gateway method.
+
2006-10-12 Magnus Henoch <mange@freemail.hu>
* 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
(defmacro url-https-create-secure-wrapper (method args)
`(defun ,(intern (format (if method "url-https-%s" "url-https") method)) ,args
,(format "HTTPS wrapper around `%s' call." (or method "url-http"))
- (let ((url-gateway-method (condition-case ()
- (require 'ssl)
- (error 'tls))))
+ (let ((url-gateway-method 'tls))
(,(intern (format (if method "url-http-%s" "url-http") method))
,@(remove '&rest (remove '&optional args))))))
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."
(eolp)
(skip-syntax-forward " ")
(setq woman-leave-blank-lines 1))
- (beginning-of-line)
+ ;; This shouldn't happen, but in case it does (e.g. for
+ ;; badly-formatted manfiles with no terminating newline),
+ ;; avoid an infinite loop.
+ (unless (and (eolp) (eobp))
+ (beginning-of-line))
;; If a single short line then just leave it.
;; This is necessary to preserve some table layouts.
;; 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 @@
+2006-10-18 Juanma Barranquero <lekktu@gmail.com>
+
+ * control.texi (Processing of Errors): Use @var for an argument,
+ not @code.
+
+2006-10-16 Richard Stallman <rms@gnu.org>
+
+ * edebug.texi (Edebug Recursive Edit): Minor cleanup.
+
+ * keymaps.texi (Format of Keymaps): Show all the keymap element
+ patterns that result from menu items.
+ (Key Lookup): Minor cleanups.
+
+ * modes.texi (Precalculated Fontification): Don't say that
+ not setting font-lock-defaults avoids loading font-lock.
+
+ * help.texi (Documentation): Move xref to Emacs Manual here.
+ (Documentation Basics): From here.
+ Also doc emacs-lisp-docstring-fill-column.
+
+ * elisp.texi: Update version and ISBN.
+
+ * commands.texi (Interactive Call): Clarify KEYS arg to
+ call-interactively is a vector.
+ (Command Loop Info): Delete anchor in this-command-keys.
+ Add anchor in this-command-keys-vector.
+ (Recursive Editing): Document how recursive-edit
+ handles the current buffer.
+
2006-10-13 Chong Yidong <cyd@stupidchicken.com>
* frames.texi (Frame Titles): %c and %l are ignored in
@@ -2179,7 +2208,7 @@
* elisp.texi (Top): Update detailed menu for node changes.
* modes.texi (Modes): Update Menu.
- (Hooks): Move to beginning of chapter.
+ (Hooks): Move to beginning of chapter.
Most minor modes run mode hooks too.
`add-hook' can handle void hooks or hooks whose value is a single
function.
@@ -3444,7 +3473,7 @@
(Quoted Character Input): Clarify description of
`read-quoted-char' and fix example.
(Quitting): Add `with-local-quit'.
- (Disabling Commands): Correct and clarify descriptions of
+ (Disabling Commands): Correct and clarify descriptions of
`enable-command' and `disable-command'.
Mention what happens if `disabled-command-hook' is nil.
(Keyboard Macros): Mention LOOPFUNC arg to `execute-kbd-macro'.
@@ -3758,7 +3787,7 @@
2004-04-04 Luc Teirlinck <teirllm@auburn.edu>
- * backups.texi: Various small changes in addition to:
+ * backups.texi: Various small changes in addition to:
(Making Backups): Mention return value of `backup-buffer'.
(Auto-Saving): Mention optional FORCE argument to
`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)
Tue Jun 26 09:57:26 1990 David Lawrence (tale@geech)
- * files.texi: Noted that completion-ignored-extensions is ignored
+ * files.texi: Noted that completion-ignored-extensions is ignored
when making *Completions*.
Fri 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)
Mon Apr 17 18:56:50 1989 Robert J. Chassell (bob@rice-chex.ai.mit.edu)
- * texinfo.tex: temporarily added
+ * texinfo.tex: Temporarily added
\let\result=\dblarrow
\def\error{{\it ERROR} \longdblarrow}
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}.
Otherwise, the command is added only if it uses the minibuffer to read
an argument. @xref{Command History}.
-The argument @var{keys}, if given, specifies the sequence of events to
-supply if the command inquires which events were used to invoke it.
-If @var{keys} is omitted or @code{nil}, the return value of
-@code{this-command-keys} is used. @xref{Definition of this-command-keys}.
+The argument @var{keys}, if given, should be a vector which specifies
+the sequence of events to supply if the command inquires which events
+were used to invoke it. If @var{keys} is omitted or @code{nil}, the
+default is the return value of @code{this-command-keys-vector}.
+@xref{Definition of this-command-keys-vector}.
@end defun
@defun command-execute command &optional record-flag keys special
@@ -785,7 +786,6 @@ was specified to run but remapped into another command.
@end defvar
@defun this-command-keys
-@anchor{Definition of this-command-keys}
This function returns a string or vector containing the key sequence
that invoked the present command, plus any previous commands that
generated the prefix argument for this command. Any events read by the
@@ -806,6 +806,7 @@ fit in a string. @xref{Input Events}.
@end defun
@defun this-command-keys-vector
+@anchor{Definition of this-command-keys-vector}
Like @code{this-command-keys}, except that it always returns the events
in a vector, so you don't need to deal with the complexities of storing
input events in a string (@pxref{Strings of Events}).
@@ -3021,7 +3022,12 @@ automatically by the initialization of Emacs, to let the user begin
editing. When called from a Lisp program, it enters a recursive editing
level.
- In the following example, the function @code{simple-rec} first
+If the current buffer is not the same as the selected window's buffer,
+@code{recursive-edit} saves and restores the current buffer. Otherwise,
+if you switch buffers, the buffer you switched to is current after
+@code{recursive-edit} returns.
+
+In the following example, the function @code{simple-rec} first
advances point one word, then enters a recursive edit, printing out a
message in the echo area. The user can then do any editing desired, and
then 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
function should take three arguments: @var{data}, a list of the same
form that @code{condition-case} would bind to its variable;
@var{context}, a string describing the situation in which the error
-occurred, or (more often) @code{nil}; and @code{caller}, the Lisp
+occurred, or (more often) @code{nil}; and @var{caller}, the Lisp
function which called the primitive that signaled the error.
@end defvar
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},
@code{track-mouse}. Commands used within Edebug do not affect these
variables outside of Edebug.
-The key sequence returned by @code{this-command-keys} is changed by
-executing commands within Edebug and there is no way to reset
-the key sequence from Lisp.
+Executing commands within Edebug can change the key sequence that
+would be returned by @code{this-command-keys}, and there is no way to
+reset the key sequence from Lisp.
Edebug cannot save and restore the value of
@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 @@
@c Version of the manual and of Emacs.
@c Please remember to update the edition number in README as well.
@set VERSION 2.9
-@set EMACSVER 22.0.51
+@set EMACSVER 22.1
@dircategory Emacs
@direntry
@@ -74,7 +74,7 @@ Published by the Free Software Foundation @*
51 Franklin St, Fifth Floor @*
Boston, MA 02110-1301 @*
USA @*
-ISBN 1-882114-73-6
+ISBN 1-882114-74-4
@sp 1
Cover 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
manual is not organized in that fashion; it is organized in terms of
topics of discussion.
+ For commands to access documentation strings, see @ref{Help, ,
+Help, emacs, The GNU Emacs Manual}.
+
@menu
* Documentation Basics:: Good style for doc strings.
Where to put them. How Emacs stores them.
@@ -63,6 +66,10 @@ documentation is displayed. This allows documentation strings to refer
to the keys for related commands and be accurate even when a user
rearranges the key bindings. (@xref{Keys in Documentation}.)
+@vindex emacs-lisp-docstring-fill-column
+ Emacs Lisp mode fills documentation strings to the width
+specified by @code{emacs-lisp-docstring-fill-column}.
+
In Emacs Lisp, a documentation string is accessible through the
function or variable that it describes:
@@ -100,9 +107,6 @@ documentation string. The functions @code{documentation} and
documentation string from the appropriate file; this is transparent to
the user.
- For information on the uses of documentation strings, see @ref{Help, ,
-Help, emacs, The GNU Emacs Manual}.
-
@c Wordy to prevent overfull hbox. --rjc 15mar92
The @file{emacs/lib-src} directory contains two utilities that you can
use 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},
which is always a character or a symbol. @xref{Classifying Events}.
In this kind of binding, @var{binding} is a command.
-@item (@var{type} @var{item-name} .@: @var{binding})
-This specifies a binding which is also a menu item
-named @var{item-name}. @xref{Simple Menu Items}.
+@item (@var{type} @var{item-name} @r{[}@var{cache}@r{]} .@: @var{binding})
+This specifies a binding which is also a simple menu item that
+displays as @var{item-name} in the menu. @var{cache}, if present,
+caches certain information for display in the menu. @xref{Simple Menu
+Items}.
+
+@item (@var{type} @var{item-name} @var{help-string} @r{[}@var{cache}@r{]} .@: @var{binding})
+This is a simple menu item with help string @var{help-string}.
@item (@var{type} menu-item .@: @var{details})
-This specifies a binding which is also a menu item and allows use of
-other features. @xref{Extended Menu Items}.
+This specifies a binding which is also an extended menu item. This
+allows use of other features. @xref{Extended Menu Items}.
@item (t .@: @var{binding})
@cindex default key binding
@@ -203,9 +208,10 @@ keymap}. Other keymaps are called @dfn{sparse keymaps}.
@cindex keymap prompt string
@cindex overall prompt string
@cindex prompt string of keymap
-Aside from bindings, a keymap can also have a string as an element.
-This is called the @dfn{overall prompt string} and makes it possible to
-use the keymap as a menu. @xref{Defining Menus}.
+Aside from elements that specify bindings for keys, a keymap can also
+have a string as an element. This is called the @dfn{overall prompt
+string} and makes it possible to use the keymap as a menu.
+@xref{Defining Menus}.
@end table
When the binding is @code{nil}, it doesn't constitute a definition
@@ -932,11 +938,11 @@ keymap.
Let's use the term @dfn{keymap entry} to describe the value found by
looking up an event type in a keymap. (This doesn't include the item
-string and other extra elements in menu key bindings, because
+string and other extra elements in a keymap element for a menu item, because
@code{lookup-key} and other key lookup functions don't include them in
-the returned value.) While any Lisp object may be stored in a keymap as
-a keymap entry, not all make sense for key lookup. Here is a table of
-the meaningful kinds of keymap entries:
+the returned value.) While any Lisp object may be stored in a keymap
+as a keymap entry, not all make sense for key lookup. Here is a table
+of the meaningful types of keymap entries:
@table @asis
@item @code{nil}
@@ -964,7 +970,7 @@ event of the key sequence is looked up in @var{keymap}.
@item @var{list}
@cindex list in keymap
-The meaning of a list depends on the types of the elements of the list.
+The meaning of a list depends on what it contains:
@itemize @bullet
@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
If your mode does not use any of the other machinery of Font Lock
(i.e. it only uses the @code{font-lock-face} property), it should not
-set the variable @code{font-lock-defaults}. That way, it will not
-cause loading of the @file{font-lock} library.
+set the variable @code{font-lock-defaults}.
@node Faces for Font Lock
@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 @@
+2006-10-16 Richard Stallman <rms@gnu.org>
+
+ * widget.texi: Use @var instead of capitalization.
+ Clarify many widget type descriptions.
+
+ * emacs.texi: Update ISBN.
+
+2006-10-13 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
+
+ * gnus.texi (Other modes): Fix typo. Add alternative index entry for
+ gnus-dired-attach.
+ (Selecting a Group): Fix typo.
+
2006-10-12 Roberto Rodr,Am(Bguez <lanubeblanca@googlemail.com>
* 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.''
@insertcopying
@sp 2
-ISBN 1-882114-06-X @*
+ISBN 1-882114-86-8*
Published by the Free Software Foundation @*
51 Franklin Street, Fifth Floor @*
Boston, 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
automatically when entering a group with the @kbd{SPACE} command.
Which article this is is controlled by the
@code{gnus-auto-select-subject} variable. Valid values for this
-variable is:
+variable are:
@table @code
@@ -24471,7 +24471,7 @@ Save table: (spam-stat-save)
@subsection Dired
@cindex dired
-@code{gnus-dired-minor-mode} provided some useful functions for dired
+@code{gnus-dired-minor-mode} provides some useful functions for dired
buffers. It is enabled with
@lisp
(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode)
@@ -24480,6 +24480,7 @@ buffers. It is enabled with
@table @kbd
@item C-c C-m C-a
@findex gnus-dired-attach
+@cindex attachments, selection via dired
Send dired's marked files as an attachment (@code{gnus-dired-attach}).
You will be prompted for a message buffer.
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}.
@comment node-name, next, previous, up
@section Basic Types
-The syntax of a type specification is given below:
+This is the general syntax of a type specification:
@example
-NAME ::= (NAME [KEYWORD ARGUMENT]... ARGS)
- | NAME
+@var{name} ::= (@var{name} [@var{keyword} @var{argument}]... @var{args})
+ | @var{name}
@end example
Where, @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.
Syntax:
@example
-TYPE ::= (link [KEYWORD ARGUMENT]... [ VALUE ])
+@var{type} ::= (link [@var{keyword} @var{argument}]... [ @var{value} ])
@end example
The @var{value}, if present, is used to initialize the @code{:value}
@@ -749,7 +749,7 @@ String to suffix links.
Syntax:
@example
-TYPE ::= (url-link [KEYWORD ARGUMENT]... URL)
+@var{type} ::= (url-link [@var{keyword} @var{argument}]... @var{url})
@end example
@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
Syntax:
@example
-TYPE ::= (info-link [KEYWORD ARGUMENT]... ADDRESS)
+@var{type} ::= (info-link [@var{keyword} @var{argument}]... @var{address})
@end example
When 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
Syntax:
@example
-TYPE ::= (push-button [KEYWORD ARGUMENT]... [ VALUE ])
+@var{type} ::= (push-button [@var{keyword} @var{argument}]... [ @var{value} ])
@end example
The @var{value}, if present, is used to initialize the @code{:value}
@@ -803,7 +803,7 @@ String to suffix push buttons.
Syntax:
@example
-TYPE ::= (editable-field [KEYWORD ARGUMENT]... [ VALUE ])
+@var{type} ::= (editable-field [@var{keyword} @var{argument}]... [ @var{value} ])
@end example
The @var{value}, if present, is used to initialize the @code{:value}
@@ -863,7 +863,7 @@ does not rebind the @key{RET} key.
Syntax:
@example
-TYPE ::= (menu-choice [KEYWORD ARGUMENT]... TYPE ... )
+@var{type} ::= (menu-choice [@var{keyword} @var{argument}]... @var{type} ... )
@end example
The @var{type} argument represents each possible choice. The widget's
@@ -904,13 +904,13 @@ The list of types.
Syntax:
@example
-TYPE ::= (radio-button-choice [KEYWORD ARGUMENT]... TYPE ... )
+@var{type} ::= (radio-button-choice [@var{keyword} @var{argument}]... @var{type} ... )
@end example
-The @var{type} argument represents each possible choice. The widget's
-value will be that of the chosen @var{type} argument. This widget will
-match any value matching at least one of the specified @var{type}
-arguments.
+The component types specify the choices, with one radio button for
+each. The widget's value will be that of the chosen @var{type}
+argument. This widget matches any value that matching at least one of
+the specified @var{type} arguments.
The following extra properties are recognized.
@@ -971,7 +971,7 @@ you call @code{widget-delete}.
Syntax:
@example
-ITEM ::= (item [KEYWORD ARGUMENT]... VALUE)
+@var{item} ::= (item [@var{keyword} @var{argument}]... @var{value})
@end example
The @var{value}, if present, is used to initialize the @code{:value}
@@ -986,7 +986,7 @@ buffer. This widget will only match the specified value.
Syntax:
@example
-ITEM ::= (choice-item [KEYWORD ARGUMENT]... VALUE)
+@var{item} ::= (choice-item [@var{keyword} @var{argument}]... @var{value})
@end example
The @var{value}, if present, is used to initialize the @code{:value}
@@ -1003,7 +1003,7 @@ the specified value.
Syntax:
@example
-TYPE ::= (toggle [KEYWORD ARGUMENT]...)
+@var{type} ::= (toggle [@var{keyword} @var{argument}]...)
@end example
The widget has two possible states, @samp{on} and @samp{off}, which
@@ -1039,7 +1039,7 @@ This widget has two possible states, @samp{selected} and
Syntax:
@example
-TYPE ::= (checkbox [KEYWORD ARGUMENT]...)
+@var{type} ::= (checkbox [@var{keyword} @var{argument}]...)
@end example
@node checklist, editable-list, checkbox, Basic Types
@@ -1050,7 +1050,7 @@ TYPE ::= (checkbox [KEYWORD ARGUMENT]...)
Syntax:
@example
-TYPE ::= (checklist [KEYWORD ARGUMENT]... TYPE ... )
+@var{type} ::= (checklist [@var{keyword} @var{argument}]... @var{type} ... )
@end example
The @var{type} arguments represent each checklist item. The widget's
@@ -1108,7 +1108,7 @@ The list of types.
Syntax:
@example
-TYPE ::= (editable-list [KEYWORD ARGUMENT]... TYPE)
+@var{type} ::= (editable-list [@var{keyword} @var{argument}]... @var{type})
@end example
The value is a list, where each member represents one widget of type
@@ -1168,7 +1168,7 @@ This widget simply group other widgets together.
Syntax:
@example
-TYPE ::= (group [KEYWORD ARGUMENT]... TYPE...)
+@var{type} ::= (group [@var{keyword} @var{argument}]... @var{type}...)
@end example
The value is a list, with one member for each @var{type}.
@@ -1201,7 +1201,7 @@ of the composite widgets.
The syntax for the @code{const} widget is:
@example
-TYPE ::= (const [KEYWORD ARGUMENT]... [ VALUE ])
+@var{type} ::= (const [@var{keyword} @var{argument}]... [ @var{value} ])
@end example
The @var{value}, if present, is used to initialize the @code{:value}
@@ -1237,7 +1237,7 @@ user to edit it inline in the buffer.
The syntax for the @code{sexp} widget is:
@example
-TYPE ::= (sexp [KEYWORD ARGUMENT]... [ VALUE ])
+@var{type} ::= (sexp [@var{keyword} @var{argument}]... [ @var{value} ])
@end example
@deffn Widget sexp
@@ -1261,7 +1261,7 @@ following widgets.
The syntax for all the atoms are:
@example
-TYPE ::= (NAME [KEYWORD ARGUMENT]... [ VALUE ])
+@var{type} ::= (@var{construct} [@var{keyword} @var{argument}]... [ @var{value} ])
@end example
The @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.
@subsection Composite Sexp Widgets
@cindex composite sexp widgets
-The syntax for the composite widget is:
+The syntax for the composite widget construct is:
@example
-TYPE ::= (NAME [KEYWORD ARGUMENT]... COMPONENT...)
+@var{type} ::= (@var{construct} [@var{keyword} @var{argument}]... @var{component}...)
@end example
@noindent
@@ -1342,19 +1342,43 @@ where each @var{component} must be a widget type. Each component widget
will be displayed in the buffer, and will be editable by the user.
@deffn Widget cons
-The value of a @code{cons} widget is a cons-cell where the @sc{car} is
-the value of the first component and the @sc{cdr} is the value of the
-second component. There must be exactly two components.
+The value of a @code{cons} widget must be a cons-cell whose @sc{car}
+and @sc{cdr} have two specified types. It uses this syntax:
+
+@example
+@var{type} ::= (cons [@var{keyword} @var{argument}]... @var{car-type} @var{cdr-type})
+@end example
+@end deffn
+
+@deffn Widget choice
+The @code{choice} widget specifies a set of values that match any one
+of a fixed set of types. Its syntax is as follows:
+
+@example
+@var{type} ::= (choice [@var{keyword} @var{argument}]... @var{type} ... )
+@end example
+
+The value of a @code{choice} widget can be anything that matches any of the
+@var{types}.
@end deffn
@deffn Widget list
-The value of a @code{list} widget is a list containing the value of
-each of its components.
+The value of a @code{list} widget must be a list whose element types
+match the specified component types:
+
+@example
+@var{type} ::= (list [@var{keyword} @var{argument}]... @var{component-type}...)
+@end example
+
+Thus, @code{(list string number)} matches lists of two elements,
+the first being a string and the second being a number.
@end deffn
@deffn Widget vector
-The value of a @code{vector} widget is a vector containing the value of
-each of its component.
+The @code{vector} widget is like the @code{list} widget but matches
+vectors instead of lists. Thus, @code{(vector string number)} matches
+vectors of two elements, the first being a string and the second being
+a number.
@end deffn
The 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},
keyword. If any component of a composite widget has the @code{:inline}
keyword set, its value must be a list which will then be spliced into
the composite. For example, to specify a list whose first element must
-be a file name, and whose remaining arguments should either be the
+be a file name, and whose remaining elements should either be the
symbol @code{t} or two files, you can use the following widget
specification:
@@ -1376,29 +1400,32 @@ specification:
@end example
The value of a widget of this type will either have the form
-@code{(file t)} or @code{(file string string)}.
+@code{(file t)} or @code{(file @var{string} @var{string})}.
-This concept of inline is probably hard to understand. It was certainly
-hard to implement, so instead of confusing you more by trying to explain
-it here, I'll just suggest you meditate over it for a while.
-
-@deffn Widget choice
-Allows you to edit a sexp which may have one of a fixed set of types.
-It is currently implemented with the @code{choice-menu} basic widget,
-and has a similar syntax.
-@end deffn
+This concept of @code{:inline} may be hard to understand. It was
+certainly hard to implement, so instead of confusing you more by
+trying to explain it here, I'll just suggest you meditate over it for
+a while.
@deffn Widget set
-Allows you to specify a type which must be a list whose elements all
-belong to the given set. The elements of the list are not significant.
-This is implemented on top of the @code{checklist} basic widget, and has
-a similar syntax.
+Specifies a type whose values are the lists whose elements all belong
+to a given set. The order of elements of the list is not significant.
+Here's the syntax:
+
+@example
+@var{type} ::= (set [@var{keyword} @var{argument}]... @var{permitted-element} ... )
+@end example
+
+Use @code{const} to specify each permitted element, like this:
+@code{(set (const a) (const b))}.
@end deffn
@deffn Widget repeat
-Allows you to specify a variable length list whose members are all of
-the same type. Implemented on top of the @code{editable-list} basic
-widget, and has a similar syntax.
+Specifies a list of any number of elements that fit a certain type.
+
+@example
+@var{type} ::= (repeat [@var{keyword} @var{argument}]... @var{type})
+@end example
@end deffn
@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 @@
+2006-10-16 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * gtkutil.c (get_utf8_string): Remove warnings with casts.
+ (xg_tool_bar_button_cb): Ditto
+ (xg_tool_bar_callback): Ditto.
+
+2006-10-16 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Remove unused
+ variable ch_dim.
+ (adjust_frame_glyphs_for_window_redisplay): Likewise. Don't allocate
+ menu bar window matrices on non-X systems.
+
+ * mac.c (Fmac_get_preference, Fmac_code_convert_string): Add GCPROs.
+
+ * macterm.c (mac_query_char_extents): Don't return glyph ID if layout
+ adjustment is needed.
+ (mac_load_query_font): Check if width and height are positive.
+
+2006-10-14 Richard Stallman <rms@gnu.org>
+
+ * sysdep.c (init_sys_modes): Delete DEFVAR_LISP in the wrong place.
+
2006-10-13 Chong Yidong <cyd@stupidchicken.com>
* 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)
X and Y are column/row within the frame glyph matrix where
sub-matrices for the window tree rooted at WINDOW must be
- allocated. CH_DIM contains the dimensions of the smallest
- character that could be used during display. DIM_ONLY_P non-zero
- means that the caller of this function is only interested in the
- result matrix dimension, and matrix adjustments should not be
- performed.
+ allocated. DIM_ONLY_P non-zero means that the caller of this
+ function is only interested in the result matrix dimension, and
+ matrix adjustments should not be performed.
The function returns the total width/height of the sub-matrices of
the window tree. If called on a frame root window, the computation
@@ -2038,8 +2036,7 @@ required_matrix_width (w)
/* Allocate window matrices for window-based redisplay. W is the
- window whose matrices must be allocated/reallocated. CH_DIM is the
- size of the smallest character that could potentially be used on W. */
+ window whose matrices must be allocated/reallocated. */
static void
allocate_matrices_for_window_redisplay (w)
@@ -2272,7 +2269,6 @@ static void
adjust_frame_glyphs_for_frame_redisplay (f)
struct frame *f;
{
- struct dim ch_dim;
struct dim matrix_dim;
int pool_changed_p;
int window_change_flags;
@@ -2281,10 +2277,6 @@ adjust_frame_glyphs_for_frame_redisplay (f)
if (!FRAME_LIVE_P (f))
return;
- /* Determine the smallest character in any font for F. On
- console windows, all characters have dimension (1, 1). */
- ch_dim.width = ch_dim.height = 1;
-
top_window_y = FRAME_TOP_MARGIN (f);
/* Allocate glyph pool structures if not already done. */
@@ -2373,22 +2365,14 @@ static void
adjust_frame_glyphs_for_window_redisplay (f)
struct frame *f;
{
- struct dim ch_dim;
struct window *w;
xassert (FRAME_WINDOW_P (f) && FRAME_LIVE_P (f));
- /* Get minimum sizes. */
-#ifdef HAVE_WINDOW_SYSTEM
- ch_dim.width = FRAME_SMALLEST_CHAR_WIDTH (f);
- ch_dim.height = FRAME_SMALLEST_FONT_HEIGHT (f);
-#else
- ch_dim.width = ch_dim.height = 1;
-#endif
-
/* Allocate/reallocate window matrices. */
allocate_matrices_for_window_redisplay (XWINDOW (FRAME_ROOT_WINDOW (f)));
+#ifdef HAVE_X_WINDOWS
/* Allocate/ reallocate matrices of the dummy window used to display
the menu bar under X when no X toolkit support is available. */
#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
@@ -2412,7 +2396,8 @@ adjust_frame_glyphs_for_window_redisplay (f)
XSETFASTINT (w->total_cols, FRAME_TOTAL_COLS (f));
allocate_matrices_for_window_redisplay (w);
}
-#endif /* not USE_X_TOOLKIT */
+#endif /* not USE_X_TOOLKIT && not USE_GTK */
+#endif /* HAVE_X_WINDOWS */
#ifndef USE_GTK
/* 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)
char *cp, *up;
GError *error = NULL;
- while (! (cp = g_locale_to_utf8 (p, -1, &bytes_read,
- &bytes_written, &error))
+ while (! (cp = g_locale_to_utf8 ((char *)p, -1, &bytes_read,
+ &bytes_written, &error))
&& error->code == G_CONVERT_ERROR_ILLEGAL_SEQUENCE)
{
++nr_bad;
@@ -541,13 +541,13 @@ get_utf8_string (str)
if (cp) g_free (cp);
up = utf8_str = xmalloc (strlen (str) + nr_bad * 4 + 1);
- p = str;
+ p = (unsigned char *)str;
- while (! (cp = g_locale_to_utf8 (p, -1, &bytes_read,
+ while (! (cp = g_locale_to_utf8 ((char *)p, -1, &bytes_read,
&bytes_written, &error))
&& error->code == G_CONVERT_ERROR_ILLEGAL_SEQUENCE)
{
- strncpy (up, p, bytes_written);
+ strncpy (up, (char *)p, bytes_written);
sprintf (up + bytes_written, "\\%03o", p[bytes_written]);
up[bytes_written+4] = '\0';
up += bytes_written+4;
@@ -3362,8 +3362,9 @@ xg_tool_bar_button_cb (widget, event, user_data)
GdkEventButton *event;
gpointer user_data;
{
- g_object_set_data (G_OBJECT (user_data), XG_TOOL_BAR_LAST_MODIFIER,
- (gpointer) event->state);
+ /* Casts to avoid warnings when gpointer is 64 bits and int is 32 bits */
+ gpointer ptr = (gpointer) (EMACS_INT) event->state;
+ g_object_set_data (G_OBJECT (user_data), XG_TOOL_BAR_LAST_MODIFIER, ptr);
return FALSE;
}
@@ -3375,7 +3376,8 @@ xg_tool_bar_callback (w, client_data)
{
/* The EMACS_INT cast avoids a warning. */
int idx = (int) (EMACS_INT) client_data;
- int mod = (int) g_object_get_data (G_OBJECT (w), XG_TOOL_BAR_LAST_MODIFIER);
+ int mod = (int) (EMACS_INT) g_object_get_data (G_OBJECT (w),
+ XG_TOOL_BAR_LAST_MODIFIER);
FRAME_PTR f = (FRAME_PTR) g_object_get_data (G_OBJECT (w), XG_FRAME_DATA);
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. */)
CFStringRef app_id, key_str;
CFPropertyListRef app_plist = NULL, plist;
Lisp_Object result = Qnil, tmp;
+ struct gcpro gcpro1, gcpro2;
if (STRINGP (key))
key = Fcons (key, Qnil);
@@ -4627,6 +4628,8 @@ otherwise. */)
if (!NILP (hash_bound))
CHECK_NUMBER (hash_bound);
+ GCPRO2 (key, format);
+
BLOCK_INPUT;
app_id = kCFPreferencesCurrentApplication;
@@ -4681,6 +4684,8 @@ otherwise. */)
UNBLOCK_INPUT;
+ UNGCPRO;
+
return result;
}
@@ -4846,6 +4851,7 @@ On successful conversion, return the result string, else return nil. */)
Lisp_Object string, source, target, normalization_form;
{
Lisp_Object result = Qnil;
+ struct gcpro gcpro1, gcpro2, gcpro3, gcpro4;
CFStringEncoding src_encoding, tgt_encoding;
CFStringRef str = NULL;
@@ -4856,6 +4862,8 @@ On successful conversion, return the result string, else return nil. */)
CHECK_SYMBOL (target);
CHECK_SYMBOL (normalization_form);
+ GCPRO4 (string, source, target, normalization_form);
+
BLOCK_INPUT;
src_encoding = get_cfstring_encoding_from_lisp (source);
@@ -4896,6 +4904,8 @@ On successful conversion, return the result string, else return nil. */)
UNBLOCK_INPUT;
+ UNGCPRO;
+
return result;
}
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,
err1 = ATSUGetGlyphInfo (text_layout, kATSUFromTextBeginning,
kATSUToTextEnd, &count,
&glyph_info_array);
- if (err1 == noErr)
+ if (err1 == noErr
+ /* Make sure that we don't have to make layout
+ adjustments. */
+ && glyph_info_array.glyphs[0].deltaY == 0.0f
+ && glyph_info_array.glyphs[0].idealX == 0.0f
+ && glyph_info_array.glyphs[0].screenX == 0)
{
xassert (glyph_info_array.glyphs[0].glyphID);
*cg_glyph = glyph_info_array.glyphs[0].glyphID;
@@ -7963,7 +7968,8 @@ mac_load_query_font (f, fontname)
NULL
#endif
);
- if (err != noErr)
+ if (err != noErr
+ || space_bounds->width <= 0 || FONT_HEIGHT (font) <= 0)
{
mac_unload_font (&one_mac_display_info, font);
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)
{
struct emacs_tty tty;
-#ifdef MAC_OS8
-/* cus-start.el complains if delete-exited-processes is not defined */
-#ifndef subprocesses
- DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes,
- doc: /* *Non-nil means delete processes immediately when they exit.
-nil means don't delete them until `list-processes' is run. */);
- delete_exited_processes = 0;
-#endif
-#endif /* MAC_OS8 */
-
#ifdef VMS
#if 0
static int oob_chars[2] = {0, 1 << 7}; /* catch C-g's */