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
This commit is contained in:
Karoly Lorentey 2006-12-03 12:15:03 +00:00
commit 14bcc1e098
47 changed files with 564 additions and 240 deletions

View file

@ -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.

View file

@ -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

View file

@ -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.

View file

@ -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>

View file

@ -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)

View file

@ -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

View file

@ -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.

View file

@ -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))))))

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)))

View file

@ -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

View file

@ -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 "'"))
(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 "))
;; 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))))
(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)))

View file

@ -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))

View file

@ -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))))

View file

@ -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

View file

@ -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

View file

@ -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))

View file

@ -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

View file

@ -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.

View file

@ -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)

View file

@ -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

View file

@ -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))))))

View file

@ -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 '())))

View file

@ -614,6 +614,7 @@
;;; Code:
(require 'regexp-opt)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;

View file

@ -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

View file

@ -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))))))

View file

@ -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 !!!!!

View file

@ -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.

View file

@ -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}.

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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;
}

View file

@ -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;

View file

@ -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 */