mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
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
This commit is contained in:
commit
14bcc1e098
47 changed files with 564 additions and 240 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
104
lisp/ChangeLog
104
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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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))))))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)))
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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))))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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))))))
|
||||
|
|
|
|||
|
|
@ -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 '())))
|
||||
|
|
|
|||
|
|
@ -614,6 +614,7 @@
|
|||
;;; Code:
|
||||
|
||||
|
||||
(require 'regexp-opt)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;;;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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))))))
|
||||
|
||||
|
|
|
|||
|
|
@ -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 !!!!!
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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}.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
129
man/widget.texi
129
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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
10
src/mac.c
10
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
10
src/sysdep.c
10
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 */
|
||||
|
|
|
|||
Loading…
Reference in a new issue