mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-29 08:31:35 -08:00
Merge from trunk.
This commit is contained in:
commit
b1f367f797
44 changed files with 479 additions and 133 deletions
|
|
@ -632,3 +632,11 @@ mytest my.email.address
|
|||
|
||||
Then if you do all your testing with 'Package: mytest', the resulting
|
||||
mails should only go to your email address.
|
||||
|
||||
** Adding new tags
|
||||
|
||||
Add them to @gTags in /etc/debbugs/config.
|
||||
I think you also have to add them to 'tags' and 'tags_single_letter'
|
||||
in /usr/share/perl5/Debbugs/Config.pm.
|
||||
And update /var/www/Developer.html with a description of what the tag means.
|
||||
And the "valid tags" list in /var/www/index.html.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* help.texi (Misc Help): Mention `describe-prefix-bindings'
|
||||
explicitly (bug#8904).
|
||||
|
||||
2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* trouble.texi (Checklist): Use an `M-x' example instead of an
|
||||
|
|
|
|||
|
|
@ -589,11 +589,13 @@ displays the contents of the syntax table, with explanations of each
|
|||
character's syntax (@pxref{Syntax Tables,, Syntax Tables, elisp, The
|
||||
Emacs Lisp Reference Manual}).
|
||||
|
||||
@findex describe-prefix-bindings
|
||||
You can get a list of subcommands for a particular prefix key by
|
||||
typing @kbd{C-h} after the prefix key. (There are a few prefix keys
|
||||
for which this does not work---those that provide their own bindings
|
||||
for @kbd{C-h}. One of these is @key{ESC}, because @kbd{@key{ESC} C-h}
|
||||
is actually @kbd{C-M-h}, which marks a defun.)
|
||||
typing @kbd{C-h} (@code{describe-prefix-bindings}) after the prefix
|
||||
key. (There are a few prefix keys for which this does not
|
||||
work---those that provide their own bindings for @kbd{C-h}. One of
|
||||
these is @key{ESC}, because @kbd{@key{ESC} C-h} is actually
|
||||
@kbd{C-M-h}, which marks a defun.)
|
||||
|
||||
@node Help Files
|
||||
@section Help Files
|
||||
|
|
|
|||
|
|
@ -1,3 +1,22 @@
|
|||
2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
Tim Cross <theophilusx@gmail.com> (tiny change)
|
||||
Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* keymaps.texi (Toolkit Differences): New node. (Bug#8176)
|
||||
|
||||
2011-07-15 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* help.texi (Keys in Documentation): Revert last change.
|
||||
|
||||
2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* help.texi (Keys in Documentation): Clarify that \= only quotes
|
||||
the next character, and doesn't affect longer sequences in
|
||||
particular (bug#8935).
|
||||
|
||||
* debugging.texi (Using Debugger): Mention
|
||||
@code{eval-expression-debug-on-error} (bug#8549).
|
||||
|
||||
2011-07-14 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* display.texi (Other Display Specs): Document that `left-fringe'
|
||||
|
|
|
|||
|
|
@ -306,6 +306,16 @@ and it is wise to go back to the backtrace buffer and exit the debugger
|
|||
the debugger gets out of the recursive edit and kills the backtrace
|
||||
buffer.
|
||||
|
||||
When the debugger has been entered, the @code{debug-on-error}
|
||||
variable is temporarily set according to
|
||||
@code{eval-expression-debug-on-error}. If the latter variable is
|
||||
non-@code{nil}, @code{debug-on-error} will temporarily be set to
|
||||
@code{t}. This means that any further errors that occur while doing a
|
||||
debugging session will (by default) trigger another backtrace. If
|
||||
this is not want you want, you can either set
|
||||
@code{eval-expression-debug-on-error} to @code{nil}, or set
|
||||
@code{debug-on-error} to @code{nil} in @code{debugger-mode-hook}.
|
||||
|
||||
@cindex current stack frame
|
||||
The backtrace buffer shows you the functions that are executing and
|
||||
their argument values. It also allows you to specify a stack frame by
|
||||
|
|
|
|||
|
|
@ -2019,8 +2019,10 @@ an existing menu, you can specify its position in the menu using
|
|||
various features.
|
||||
* Menu Separators:: Drawing a horizontal line through a menu.
|
||||
* Alias Menu Items:: Using command aliases in menu items.
|
||||
* Toolkit Differences:: Not all toolkits provide the same features.
|
||||
@end menu
|
||||
|
||||
|
||||
@node Simple Menu Items
|
||||
@subsubsection Simple Menu Items
|
||||
|
||||
|
|
@ -2309,6 +2311,28 @@ itself). To request this, give the alias symbol a non-@code{nil}
|
|||
causes menu items for @code{make-read-only} and @code{make-writable} to
|
||||
show the keyboard bindings for @code{toggle-read-only}.
|
||||
|
||||
@node Toolkit Differences
|
||||
@subsubsection Toolkit Differences
|
||||
|
||||
The various toolkits with which you can build Emacs do not all support
|
||||
the same set of features for menus. Some code works as expected with
|
||||
one toolkit, but not under another.
|
||||
|
||||
One example is menu actions or buttons in a top-level menu-bar. The
|
||||
following works with the Lucid toolkit or on MS Windows, but not with
|
||||
GTK or Nextstep, where clicking on the item has no effect.
|
||||
|
||||
@example
|
||||
(defun menu-action-greet ()
|
||||
(interactive)
|
||||
(message "Hello Emacs User!"))
|
||||
|
||||
(defun top-level-menu ()
|
||||
(interactive)
|
||||
(define-key lisp-interaction-mode-map [menu-bar m]
|
||||
'(menu-item "Action Button" menu-action-greet)))
|
||||
@end example
|
||||
|
||||
@node Mouse Menus
|
||||
@subsection Menus and the Mouse
|
||||
|
||||
|
|
|
|||
|
|
@ -1099,11 +1099,12 @@ use short names like @code{x}.
|
|||
@node Lexical Binding
|
||||
@subsection Use of Lexical Scoping
|
||||
|
||||
Emacs Lisp can be evaluated in two different modes: in dynamic binding mode or
|
||||
lexical binding mode. In dynamic binding mode, all local variables use dynamic
|
||||
scoping, whereas in lexical binding mode variables that have been declared
|
||||
@dfn{special} (i.e., declared with @code{defvar} or @code{defconst}) use
|
||||
dynamic scoping and all others use lexical scoping.
|
||||
Emacs Lisp can be evaluated in two different modes: in dynamic binding
|
||||
mode or lexical binding mode. In dynamic binding mode, all local
|
||||
variables use dynamic scoping, whereas in lexical binding mode
|
||||
variables that have been declared @dfn{special} (i.e., declared with
|
||||
@code{defvar}, @code{defcustom} or @code{defconst}) use dynamic
|
||||
scoping and all others use lexical scoping.
|
||||
|
||||
@defvar lexical-binding
|
||||
When non-nil, evaluation of Lisp code uses lexical scoping for non-special
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* flymake.texi (Example -- Configuring a tool called via make):
|
||||
Use /dev/null instead of the Windows "nul" (bug#8715).
|
||||
|
||||
2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* widget.texi (Setting Up the Buffer): Remove mention of the
|
||||
|
|
|
|||
|
|
@ -483,7 +483,7 @@ our case this target might look like this:
|
|||
|
||||
@verbatim
|
||||
check-syntax:
|
||||
gcc -o nul -S ${CHK_SOURCES}
|
||||
gcc -o /dev/null -S ${CHK_SOURCES}
|
||||
@end verbatim
|
||||
|
||||
The format of error messages reported by @code{gcc} is already
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
2011-07-16 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Release MH-E version 8.2.92.
|
||||
|
||||
* NEWS, MH-E-NEWS: Update for MH-E release 8.2.92.
|
||||
|
||||
2011-07-12 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Release MH-E version 8.2.91.
|
||||
|
|
|
|||
|
|
@ -3,6 +3,11 @@
|
|||
Copyright (C) 2001-2011 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
* Changes in MH-E 8.2.92
|
||||
|
||||
Version 8.2.92 actually corrects the error in the modeline glyph when
|
||||
running XEmacs 21.5.31 in a terminal.
|
||||
|
||||
* Changes in MH-E 8.2.91
|
||||
|
||||
Version 8.2.91 fixes the folder window problem that was introduced
|
||||
|
|
@ -14,8 +19,6 @@ from SourceForge and explicitly load MH-E will have to be change their
|
|||
`load-path' to "/path/to/mh-e/emacs/trunk/lisp/mh-e" instead. Note the
|
||||
addition of "trunk."
|
||||
|
||||
This version of MH-E is packaged with GNU Emacs 24.1
|
||||
|
||||
* Changes in MH-E 8.2.90
|
||||
|
||||
In 2010, the version control system (VCS) of Emacs was upgraded from
|
||||
|
|
@ -32,6 +35,15 @@ meaning that `+f/b/b TAB' can complete to `+foo/bar/baz'.
|
|||
Also, RFC 2047-encoded Subject header fields in replies are now
|
||||
decoded.
|
||||
|
||||
This version of MH-E is packaged with GNU Emacs 24.1
|
||||
|
||||
** Bug Fixes in MH-E 8.2.90
|
||||
|
||||
*** Make mh-showing a legitimate minor mode
|
||||
|
||||
The `mh-showing-mode' variable is now defined with `define-minor-mode'
|
||||
(closes SF #482666).
|
||||
|
||||
|
||||
|
||||
* Changes in MH-E 8.2
|
||||
|
|
|
|||
2
etc/NEWS
2
etc/NEWS
|
|
@ -488,7 +488,7 @@ $ESHELL nor variable `explicit-shell-file-name' is set.
|
|||
|
||||
** MH-E
|
||||
|
||||
*** Upgraded to MH-E version 8.2.91. See MH-E-NEWS for details.
|
||||
*** Upgraded to MH-E version 8.2.92. See MH-E-NEWS for details.
|
||||
|
||||
** comint and modes derived from it use the generic completion code.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,87 @@
|
|||
2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* net/gnutls.el (gnutls-log-level): Removed.
|
||||
|
||||
* textmodes/fill.el (adaptive-fill-regexp): Include EN DASH as an
|
||||
indentation character (bug#6380).
|
||||
|
||||
* files.el (buffer-offer-save): Made permanently local (bug#6241).
|
||||
|
||||
* doc-view.el (doc-view-make-safe-dir): Rewrite the error message
|
||||
to clarify what the problem is (bug#4291).
|
||||
|
||||
* simple.el (current-kill): Clarify what
|
||||
`interprogram-paste-function' does (bug#7500).
|
||||
(auto-fill-mode): Document `auto-fill-function' in relation to
|
||||
`auto-fill-mode' (bug#2470).
|
||||
|
||||
2011-07-16 Lawrence Mitchell <wence@gmx.li>
|
||||
|
||||
* emacs-lisp/cl-macs.el (defstruct): Ignore argument to setf
|
||||
method if slot is read-only (bug#9035).
|
||||
|
||||
2011-07-16 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* frame.el (select-frame-set-input-focus): New argument
|
||||
NORECORD.
|
||||
* window.el (pop-to-buffer): Select window used even if it was
|
||||
selected before, see discussion of (Bug#8615), (Bug#6954). Pass
|
||||
argument NORECORD on to select-frame-set-input-focus.
|
||||
|
||||
2011-07-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* subr.el (read-char-choice): Allow quitting. (Bug#9001)
|
||||
Respect help-form.
|
||||
|
||||
2011-07-09 Lawrence Mitchell <wence@gmx.li>
|
||||
|
||||
* net/gnutls.el (gnutls-min-prime-bits): New variable.
|
||||
(gnutls-negotiate): Use it.
|
||||
|
||||
2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* net/gnutls.el (gnutls-negotiate): Upcase
|
||||
`gnutls-algorithm-priority'.
|
||||
|
||||
2011-07-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* jka-compr.el (jka-compr-verbose): Move from here...
|
||||
* jka-cmpr-hook.el (jka-compr-verbose): ... to here. (Bug#9090)
|
||||
Add missing :version tag.
|
||||
* info.el: No need to require jka-compr when compiling.
|
||||
|
||||
2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* net/gnutls.el (gnutls-algorithm-priority): New variable.
|
||||
(gnutls-negotiate): Use it.
|
||||
|
||||
* emacs-lisp/cl-macs.el (declare): Link to the "Declarations" node.
|
||||
|
||||
* info.el (Info-beginning-of-buffer): New command.
|
||||
(Info-mode-map): Use it instead of `beginning-of-buffer' to allow
|
||||
announcing `b' as the key (bug#8325).
|
||||
(Info-mode-menu): Use `Info-beginning-of-buffer' for consistency.
|
||||
|
||||
* emacs-lisp/cl-macs.el (declare): Doc string fix-up.
|
||||
|
||||
* international/mule-cmds.el
|
||||
(describe-specified-language-support): Make the error message
|
||||
clearer (bug#8905).
|
||||
|
||||
* emacs-lisp/cl-macs.el (declare): Add a doc string (bug#8690).
|
||||
|
||||
* isearch.el (isearch-barrier): Add a doc string, since it's
|
||||
mentioned in a function doc string (bug#8678).
|
||||
|
||||
2011-07-15 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* window.el (switch-to-buffer): Call pop-to-buffer with normalized
|
||||
buffer argument (Bug#9083) and self-identifying label argument.
|
||||
|
||||
2011-07-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs-lisp/debug.el (debug): Doc fix. (Bug#8273)
|
||||
|
||||
2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* man.el (Man-fontify-manpage): Fix message when formatting the
|
||||
|
|
|
|||
|
|
@ -569,18 +569,18 @@ at the top edge of the page moves to the previous page."
|
|||
(defun doc-view-make-safe-dir (dir)
|
||||
(condition-case nil
|
||||
(let ((umask (default-file-modes)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
;; Create temp files with strict access rights. It's easy to
|
||||
;; loosen them later, whereas it's impossible to close the
|
||||
;; time-window of loose permissions otherwise.
|
||||
(set-default-file-modes #o0700)
|
||||
(make-directory dir))
|
||||
;; Reset the umask.
|
||||
(set-default-file-modes umask)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
;; Create temp files with strict access rights. It's easy to
|
||||
;; loosen them later, whereas it's impossible to close the
|
||||
;; time-window of loose permissions otherwise.
|
||||
(set-default-file-modes #o0700)
|
||||
(make-directory dir))
|
||||
;; Reset the umask.
|
||||
(set-default-file-modes umask)))
|
||||
(file-already-exists
|
||||
(if (file-symlink-p dir)
|
||||
(error "Danger: %s points to a symbolic link" dir))
|
||||
(when (file-symlink-p dir)
|
||||
(error "Danger: %s points to a symbolic link" dir))
|
||||
;; In case it was created earlier with looser rights.
|
||||
;; We could check the mode info returned by file-attributes, but it's
|
||||
;; a pain to parse and it may not tell you what we want under
|
||||
|
|
@ -589,7 +589,12 @@ at the top edge of the page moves to the previous page."
|
|||
;; This also ends up checking a bunch of useful conditions: it makes
|
||||
;; sure we have write-access to the directory and that we own it, thus
|
||||
;; closing a bunch of security holes.
|
||||
(set-file-modes dir #o0700))))
|
||||
(condition-case error
|
||||
(set-file-modes dir #o0700)
|
||||
(file-error
|
||||
(error
|
||||
(format "Unable to use temporary directory %s: %s"
|
||||
dir (mapconcat 'identity (cdr error) " "))))))))
|
||||
|
||||
(defun doc-view-current-cache-dir ()
|
||||
"Return the directory where the png files of the current doc should be saved.
|
||||
|
|
|
|||
|
|
@ -282,7 +282,7 @@ Not documented
|
|||
;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
|
||||
;;;;;; do* do loop return-from return block etypecase typecase ecase
|
||||
;;;;;; case load-time-value eval-when destructuring-bind function*
|
||||
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "9f551dc739a39b3c8b420fbd1ab71879")
|
||||
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "2261724608e3223036b863d214f7dc0c")
|
||||
;;; Generated autoloads from cl-macs.el
|
||||
|
||||
(autoload 'gensym "cl-macs" "\
|
||||
|
|
@ -541,7 +541,13 @@ values. For compatibility, (values A B C) is a synonym for (list A B C).
|
|||
\(fn TYPE FORM)" nil (quote macro))
|
||||
|
||||
(autoload 'declare "cl-macs" "\
|
||||
Declare SPECS about the current function while compiling.
|
||||
For instance
|
||||
|
||||
(declare (warn 0))
|
||||
|
||||
will turn off byte-compile warnings in the function.
|
||||
See Info node `(cl)Declarations' for details.
|
||||
|
||||
\(fn &rest SPECS)" nil (quote macro))
|
||||
|
||||
|
|
|
|||
|
|
@ -1601,6 +1601,13 @@ values. For compatibility, (values A B C) is a synonym for (list A B C).
|
|||
|
||||
;;;###autoload
|
||||
(defmacro declare (&rest specs)
|
||||
"Declare SPECS about the current function while compiling.
|
||||
For instance
|
||||
|
||||
\(declare (warn 0))
|
||||
|
||||
will turn off byte-compile warnings in the function.
|
||||
See Info node `(cl)Declarations' for details."
|
||||
(if (cl-compiling-file)
|
||||
(while specs
|
||||
(if (listp cl-declare-stack) (push (car specs) cl-declare-stack))
|
||||
|
|
@ -2389,8 +2396,10 @@ value, that slot cannot be set via `setf'.
|
|||
(push (cons accessor t) side-eff)
|
||||
(push (list 'define-setf-method accessor '(cl-x)
|
||||
(if (cadr (memq :read-only (cddr desc)))
|
||||
(list 'error (format "%s is a read-only slot"
|
||||
accessor))
|
||||
(list 'progn '(ignore cl-x)
|
||||
(list 'error
|
||||
(format "%s is a read-only slot"
|
||||
'accessor)))
|
||||
;; If cl is loaded only for compilation,
|
||||
;; the call to cl-struct-setf-expander would
|
||||
;; cause a warning because it may not be
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ and `debugger-reenable' to temporarily disable debug-on-entry.")
|
|||
(setq debugger 'debug)
|
||||
;;;###autoload
|
||||
(defun debug (&rest debugger-args)
|
||||
"Enter debugger. To return, type \\<debugger-mode-map>`\\[debugger-continue]'.
|
||||
"Enter debugger. \\<debugger-mode-map>`\\[debugger-continue]' returns from the debugger.
|
||||
Arguments are mainly for use when this is called from the internals
|
||||
of the evaluator.
|
||||
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ Put first the functions more likely to cause a change and cheaper to compute.")
|
|||
(cons beg end))
|
||||
|
||||
(defvar syntax-propertize--done -1
|
||||
"Position upto which syntax-table properties have been set.")
|
||||
"Position up to which syntax-table properties have been set.")
|
||||
(make-variable-buffer-local 'syntax-propertize--done)
|
||||
|
||||
(defun syntax-propertize--shift-groups (re n)
|
||||
|
|
@ -283,7 +283,7 @@ The return value is a function suitable for `syntax-propertize-function'."
|
|||
(setq keywords font-lock-syntactic-keywords))))))
|
||||
|
||||
(defun syntax-propertize (pos)
|
||||
"Ensure that syntax-table properties are set upto POS."
|
||||
"Ensure that syntax-table properties are set until POS."
|
||||
(when (and syntax-propertize-function
|
||||
(< syntax-propertize--done pos))
|
||||
;; (message "Needs to syntax-propertize from %s to %s"
|
||||
|
|
|
|||
|
|
@ -151,6 +151,7 @@ Automatically local in all buffers."
|
|||
:type 'boolean
|
||||
:group 'backup)
|
||||
(make-variable-buffer-local 'buffer-offer-save)
|
||||
(put 'buffer-offer-save 'permanent-local t)
|
||||
|
||||
(defcustom find-file-existing-other-name t
|
||||
"Non-nil means find a file under alternative names, in existing buffers.
|
||||
|
|
|
|||
|
|
@ -747,12 +747,15 @@ the user during startup."
|
|||
|
||||
(declare-function x-focus-frame "xfns.c" (frame))
|
||||
|
||||
(defun select-frame-set-input-focus (frame)
|
||||
(defun select-frame-set-input-focus (frame &optional norecord)
|
||||
"Select FRAME, raise it, and set input focus, if possible.
|
||||
If `mouse-autoselect-window' is non-nil, also move mouse pointer
|
||||
to FRAME's selected window. Otherwise, if `focus-follows-mouse'
|
||||
is non-nil, move mouse cursor to FRAME."
|
||||
(select-frame frame)
|
||||
is non-nil, move mouse cursor to FRAME.
|
||||
|
||||
Optional argument NORECORD means to neither change the order of
|
||||
recently selected windows nor the buffer list."
|
||||
(select-frame frame norecord)
|
||||
(raise-frame frame)
|
||||
;; Ensure, if possible, that FRAME gets input focus.
|
||||
(when (memq (window-system frame) '(x w32 ns))
|
||||
|
|
|
|||
|
|
@ -1,3 +1,18 @@
|
|||
2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* message.el (message-auto-save-directory): If the ~/Mail directory
|
||||
doesn't exist, use ~ as the auto-save directory (bug#4432).
|
||||
|
||||
* gnus-group.el (gnus-group-read-ephemeral-group): Start Gnus if it
|
||||
hasn't already been started.
|
||||
|
||||
2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* gnus.el (debbugs-gnu): Renamed from debbugs-emacs.
|
||||
|
||||
* message.el (message-reply): Work around mysterious bug where
|
||||
`message-mode' seems to overwrite the locally bound `subject' variable.
|
||||
|
||||
2011-07-14 Andrew Cohen <cohen@andy.bu.edu>
|
||||
|
||||
* nnimap.el (nnimap-request-thread): Ensure search is performed in
|
||||
|
|
@ -5,7 +20,7 @@
|
|||
|
||||
* gnus-int.el (gnus-request-thread): Add group argument.
|
||||
|
||||
* gnus-sum.el (gnus-request-thread): Use it.
|
||||
* gnus-sum.el (gnus-summary-refer-thread): Use it.
|
||||
|
||||
2011-07-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
|
|
|
|||
|
|
@ -2282,6 +2282,8 @@ Return the name of the group if selection was successful."
|
|||
(gnus-group-completing-read)
|
||||
(gnus-read-method "From method")))
|
||||
;; Transform the select method into a unique server.
|
||||
(unless (gnus-alive-p)
|
||||
(gnus-no-server))
|
||||
(when (stringp method)
|
||||
(setq method (gnus-server-to-method method)))
|
||||
(setq method
|
||||
|
|
|
|||
|
|
@ -4381,12 +4381,11 @@ prompt the user for the name of an NNTP server to use."
|
|||
(gnus-1 arg dont-connect slave)
|
||||
(gnus-final-warning)))
|
||||
|
||||
(autoload 'debbugs-emacs "debbugs-gnu")
|
||||
(autoload 'debbugs-gnu "debbugs-gnu")
|
||||
(defun gnus-list-debbugs ()
|
||||
"List all open Gnus bug reports."
|
||||
(interactive)
|
||||
(debbugs-emacs '("important" "normal" "minor" "wishlist")
|
||||
"gnus"))
|
||||
(debbugs-gnu nil "gnus"))
|
||||
|
||||
;; Allow redefinition of Gnus functions.
|
||||
|
||||
|
|
|
|||
|
|
@ -1310,7 +1310,9 @@ text and it replaces `self-insert-command' with the other command, e.g.
|
|||
:type '(repeat function))
|
||||
|
||||
(defcustom message-auto-save-directory
|
||||
(file-name-as-directory (expand-file-name "drafts" message-directory))
|
||||
(if (file-exists-p message-directory)
|
||||
(file-name-as-directory (expand-file-name "drafts" message-directory))
|
||||
"~/")
|
||||
"*Directory where Message auto-saves buffers if Gnus isn't running.
|
||||
If nil, Message won't auto-save."
|
||||
:group 'message-buffers
|
||||
|
|
@ -6878,20 +6880,19 @@ Useful functions to put in this list include:
|
|||
(unless follow-to
|
||||
(setq follow-to (message-get-reply-headers wide to-address))))
|
||||
|
||||
(unless (message-mail-user-agent)
|
||||
(message-pop-to-buffer
|
||||
(message-buffer-name
|
||||
(if wide "wide reply" "reply") from
|
||||
(if wide to-address nil))
|
||||
switch-function))
|
||||
|
||||
(setq message-reply-headers
|
||||
(vector 0 subject from date message-id references 0 0 ""))
|
||||
|
||||
(message-setup
|
||||
`((Subject . ,subject)
|
||||
,@follow-to)
|
||||
cur)))
|
||||
(let ((headers
|
||||
`((Subject . ,subject)
|
||||
,@follow-to)))
|
||||
(unless (message-mail-user-agent)
|
||||
(message-pop-to-buffer
|
||||
(message-buffer-name
|
||||
(if wide "wide reply" "reply") from
|
||||
(if wide to-address nil))
|
||||
switch-function))
|
||||
(setq message-reply-headers
|
||||
(vector 0 (cdr (assq 'Subject headers))
|
||||
from date message-id references 0 0 ""))
|
||||
(message-setup headers cur))))
|
||||
|
||||
;;;###autoload
|
||||
(defun message-wide-reply (&optional to-address)
|
||||
|
|
|
|||
16
lisp/info.el
16
lisp/info.el
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile (require 'jka-compr) (require 'cl))
|
||||
(eval-when-compile (require 'cl))
|
||||
|
||||
(defgroup info nil
|
||||
"Info subsystem."
|
||||
|
|
@ -2789,6 +2789,11 @@ N is the digit argument used to invoke this command."
|
|||
(goto-char (point-max)))))
|
||||
(t (error "No previous nodes"))))
|
||||
|
||||
(defun Info-beginning-of-buffer ()
|
||||
"Go to the beginnning of the buffer."
|
||||
(interactive)
|
||||
(goto-char (point-min)))
|
||||
|
||||
(defun Info-scroll-up ()
|
||||
"Scroll one screenful forward in Info, considering all nodes as one sequence.
|
||||
Once you scroll far enough in a node that its menu appears on the screen
|
||||
|
|
@ -3650,7 +3655,7 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
|
|||
(defvar Info-mode-map
|
||||
(let ((map (make-keymap)))
|
||||
(suppress-keymap map)
|
||||
(define-key map "." 'beginning-of-buffer)
|
||||
(define-key map "." 'Info-beginning-of-buffer)
|
||||
(define-key map " " 'Info-scroll-up)
|
||||
(define-key map "\C-m" 'Info-follow-nearest-node)
|
||||
(define-key map "\t" 'Info-next-reference)
|
||||
|
|
@ -3671,7 +3676,8 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
|
|||
(define-key map "[" 'Info-backward-node)
|
||||
(define-key map "<" 'Info-top-node)
|
||||
(define-key map ">" 'Info-final-node)
|
||||
(define-key map "b" 'beginning-of-buffer)
|
||||
(define-key map "b" 'Info-beginning-of-buffer)
|
||||
(put 'Info-beginning-of-buffer :advertised-binding "b")
|
||||
(define-key map "d" 'Info-directory)
|
||||
(define-key map "e" 'Info-edit)
|
||||
(define-key map "f" 'Info-follow-reference)
|
||||
|
|
@ -3725,7 +3731,7 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
|
|||
:help "Go backward one node, considering all as a sequence"]
|
||||
["Forward" Info-forward-node
|
||||
:help "Go forward one node, considering all as a sequence"]
|
||||
["Beginning" beginning-of-buffer
|
||||
["Beginning" Info-beginning-of-buffer
|
||||
:help "Go to beginning of this node"]
|
||||
["Top" Info-top-node
|
||||
:help "Go to top node of file"]
|
||||
|
|
@ -3931,7 +3937,7 @@ Moving within a node:
|
|||
\\[Info-scroll-down] Normally, scroll backward. If the beginning of the buffer is
|
||||
already visible, try to go to the previous menu entry, or up
|
||||
if there is none.
|
||||
\\[beginning-of-buffer] Go to beginning of node.
|
||||
\\[Info-beginning-of-buffer] Go to beginning of node.
|
||||
|
||||
Advanced commands:
|
||||
\\[Info-search] Search through this Info file for specified regexp,
|
||||
|
|
|
|||
|
|
@ -2059,7 +2059,7 @@ See `set-language-info-alist' for use in programs."
|
|||
(or (not (eq last-command-event 'Default))
|
||||
(setq last-command-event 'English))
|
||||
(setq language-name (symbol-name last-command-event))))
|
||||
(error "Bogus calling sequence"))
|
||||
(error "This command should only be called from the menu bar"))
|
||||
(describe-language-environment language-name)))
|
||||
|
||||
(defun describe-language-environment (language-name)
|
||||
|
|
|
|||
|
|
@ -549,7 +549,8 @@ Each set is a vector of the form:
|
|||
(defvar isearch-error nil) ; Error message for failed search.
|
||||
(defvar isearch-other-end nil) ; Start (end) of match if forward (backward).
|
||||
(defvar isearch-wrapped nil) ; Searching restarted from the top (bottom).
|
||||
(defvar isearch-barrier 0)
|
||||
(defvar isearch-barrier 0
|
||||
"Recorded minimum/maximal point for the current search.")
|
||||
(defvar isearch-just-started nil)
|
||||
(defvar isearch-start-hscroll 0) ; hscroll when starting the search.
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,12 @@
|
|||
"jka-compr customization."
|
||||
:group 'compression)
|
||||
|
||||
(defcustom jka-compr-verbose t
|
||||
"If non-nil, output messages whenever compressing or uncompressing files."
|
||||
:version "24.1"
|
||||
:type 'boolean
|
||||
:group 'jka-compr)
|
||||
|
||||
;; List of all the elements we actually added to file-coding-system-alist.
|
||||
(defvar jka-compr-added-to-file-coding-system-alist nil)
|
||||
|
||||
|
|
|
|||
|
|
@ -97,11 +97,6 @@ NOTE: Not used in MS-DOS and Windows systems."
|
|||
:type 'string
|
||||
:group 'jka-compr)
|
||||
|
||||
(defcustom jka-compr-verbose t
|
||||
"If non-nil, output messages whenever compressing or uncompressing files."
|
||||
:type 'boolean
|
||||
:group 'jka-compr)
|
||||
|
||||
(defvar jka-compr-use-shell
|
||||
(not (memq system-type '(ms-dos windows-nt))))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
2011-07-16 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Release MH-E version 8.2.92.
|
||||
|
||||
* mh-e.el (Version, mh-version): Update for release 8.2.92.
|
||||
|
||||
2011-07-12 Bill Wohler <wohler@newt.com>
|
||||
|
||||
Release MH-E version 8.2.91.
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
;; Author: Bill Wohler <wohler@newt.com>
|
||||
;; Maintainer: Bill Wohler <wohler@newt.com>
|
||||
;; Version: 8.2.91
|
||||
;; Version: 8.2.92
|
||||
;; Keywords: mail
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
|
@ -127,7 +127,7 @@
|
|||
;; Try to keep variables local to a single file. Provide accessors if
|
||||
;; variables are shared. Use this section as a last resort.
|
||||
|
||||
(defconst mh-version "8.2.91" "Version number of MH-E.")
|
||||
(defconst mh-version "8.2.92" "Version number of MH-E.")
|
||||
|
||||
;; Variants
|
||||
|
||||
|
|
|
|||
|
|
@ -42,9 +42,24 @@
|
|||
:prefix "gnutls-"
|
||||
:group 'net-utils)
|
||||
|
||||
(defcustom gnutls-log-level 0
|
||||
"Logging level to be used by `starttls-negotiate' and GnuTLS."
|
||||
:type 'integer
|
||||
(defcustom gnutls-algorithm-priority nil
|
||||
"If non-nil, this should be a TLS priority string.
|
||||
For instance, if you want to skip the \"dhe-rsa\" algorithm,
|
||||
set this variable to \"normal:-dhe-rsa\"."
|
||||
:type '(choice (const nil)
|
||||
string))
|
||||
|
||||
;;;###autoload
|
||||
(defcustom gnutls-min-prime-bits nil
|
||||
"The minimum number of bits to be used in Diffie-Hellman key exchange.
|
||||
|
||||
This sets the minimum accepted size of the key to be used in a
|
||||
client-server handshake. If the server sends a prime with fewer than
|
||||
the specified number of bits the handshake will fail.
|
||||
|
||||
A value of nil says to use the default gnutls value."
|
||||
:type '(choice (const :tag "Use default value" nil)
|
||||
(integer :tag "Number of bits" 512))
|
||||
:group 'gnutls)
|
||||
|
||||
(defun open-gnutls-stream (name buffer host service)
|
||||
|
|
@ -90,8 +105,8 @@ trust and key files, and priority string."
|
|||
(defun* gnutls-negotiate
|
||||
(&rest spec
|
||||
&key process type hostname priority-string
|
||||
trustfiles crlfiles keylist verify-flags
|
||||
verify-error verify-hostname-error
|
||||
trustfiles crlfiles keylist min-prime-bits
|
||||
verify-flags verify-error verify-hostname-error
|
||||
&allow-other-keys)
|
||||
"Negotiate a SSL/TLS connection. Returns proc. Signals gnutls-error.
|
||||
|
||||
|
|
@ -104,6 +119,9 @@ PRIORITY-STRING is as per the GnuTLS docs, default is \"NORMAL\".
|
|||
TRUSTFILES is a list of CA bundles.
|
||||
CRLFILES is a list of CRL files.
|
||||
KEYLIST is an alist of (client key file, client cert file) pairs.
|
||||
MIN-PRIME-BITS is the minimum acceptable size of Diffie-Hellman keys
|
||||
\(see `gnutls-min-prime-bits' for more information). Use nil for the
|
||||
default.
|
||||
|
||||
When VERIFY-HOSTNAME-ERROR is not nil, an error will be raised
|
||||
when the hostname does not match the presented certificate's host
|
||||
|
|
@ -145,10 +163,14 @@ defaults to GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT."
|
|||
((eq type 'gnutls-anon)
|
||||
"NORMAL:+ANON-DH:!ARCFOUR-128")
|
||||
((eq type 'gnutls-x509pki)
|
||||
"NORMAL"))))
|
||||
(if gnutls-algorithm-priority
|
||||
(upcase gnutls-algorithm-priority)
|
||||
"NORMAL")))))
|
||||
(min-prime-bits (or min-prime-bits gnutls-min-prime-bits))
|
||||
(params `(:priority ,priority-string
|
||||
:hostname ,hostname
|
||||
:loglevel ,gnutls-log-level
|
||||
:min-prime-bits ,min-prime-bits
|
||||
:trustfiles ,trustfiles
|
||||
:crlfiles ,crlfiles
|
||||
:keylist ,keylist
|
||||
|
|
|
|||
|
|
@ -3056,10 +3056,11 @@ If `interprogram-cut-function' is set, pass the resulting kill to it."
|
|||
|
||||
(defun current-kill (n &optional do-not-move)
|
||||
"Rotate the yanking point by N places, and then return that kill.
|
||||
If N is zero, `interprogram-paste-function' is set, and calling
|
||||
it returns a string or list of strings, then that string (or
|
||||
list) is added to the front of the kill ring and the string (or
|
||||
first string in the list) is returned as the latest kill.
|
||||
If N is zero and `interprogram-paste-function' is set to a
|
||||
function that returns a string or a list of strings, and if that
|
||||
function doesn't return nil, then that string (or list) is added
|
||||
to the front of the kill ring and the string (or first string in
|
||||
the list) is returned as the latest kill.
|
||||
|
||||
If N is not zero, and if `yank-pop-change-selection' is
|
||||
non-nil, use `interprogram-cut-function' to transfer the
|
||||
|
|
@ -5236,14 +5237,16 @@ Some major modes set this.")
|
|||
;; auto-fill-function to nil in a file-local setting is safe and
|
||||
;; can be useful to prevent auto-filling.
|
||||
(put 'auto-fill-function 'safe-local-variable 'null)
|
||||
;; FIXME: turn into a proper minor mode.
|
||||
;; Add a global minor mode version of it.
|
||||
|
||||
(define-minor-mode auto-fill-mode
|
||||
"Toggle Auto Fill mode.
|
||||
With ARG, turn Auto Fill mode on if and only if ARG is positive.
|
||||
In Auto Fill mode, inserting a space at a column beyond `current-fill-column'
|
||||
automatically breaks the line at a previous space.
|
||||
|
||||
When `auto-fill-mode' is on, the `auto-fill-function' variable is
|
||||
non-`nil'.
|
||||
|
||||
The value of `normal-auto-fill-function' specifies the function to use
|
||||
for `auto-fill-function' when turning Auto Fill mode on."
|
||||
:variable (eq auto-fill-function normal-auto-fill-function))
|
||||
|
|
|
|||
41
lisp/subr.el
41
lisp/subr.el
|
|
@ -2145,23 +2145,34 @@ If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore
|
|||
keyboard-quit events while waiting for a valid input."
|
||||
(unless (consp chars)
|
||||
(error "Called `read-char-choice' without valid char choices"))
|
||||
(let (char done)
|
||||
(let (char done show-help (helpbuf " *Char Help*"))
|
||||
(let ((cursor-in-echo-area t)
|
||||
(executing-kbd-macro executing-kbd-macro))
|
||||
(while (not done)
|
||||
(unless (get-text-property 0 'face prompt)
|
||||
(setq prompt (propertize prompt 'face 'minibuffer-prompt)))
|
||||
(setq char (let ((inhibit-quit inhibit-keyboard-quit))
|
||||
(read-key prompt)))
|
||||
(cond
|
||||
((not (numberp char)))
|
||||
((memq char chars)
|
||||
(setq done t))
|
||||
((and executing-kbd-macro (= char -1))
|
||||
;; read-event returns -1 if we are in a kbd macro and
|
||||
;; there are no more events in the macro. Attempt to
|
||||
;; get an event interactively.
|
||||
(setq executing-kbd-macro nil)))))
|
||||
(save-window-excursion ; in case we call help-form-show
|
||||
(while (not done)
|
||||
(unless (get-text-property 0 'face prompt)
|
||||
(setq prompt (propertize prompt 'face 'minibuffer-prompt)))
|
||||
(setq char (let ((inhibit-quit inhibit-keyboard-quit))
|
||||
(read-key prompt)))
|
||||
(and show-help (buffer-live-p helpbuf)
|
||||
(kill-buffer helpbuf))
|
||||
(cond
|
||||
((not (numberp char)))
|
||||
;; If caller has set help-form, that's enough.
|
||||
;; They don't explicitly have to add help-char to chars.
|
||||
((and help-form
|
||||
(eq char help-char)
|
||||
(setq show-help t)
|
||||
(help-form-show)))
|
||||
((memq char chars)
|
||||
(setq done t))
|
||||
((and executing-kbd-macro (= char -1))
|
||||
;; read-event returns -1 if we are in a kbd macro and
|
||||
;; there are no more events in the macro. Attempt to
|
||||
;; get an event interactively.
|
||||
(setq executing-kbd-macro nil))
|
||||
((and (not inhibit-keyboard-quit) (eq char ?\C-g))
|
||||
(keyboard-quit))))))
|
||||
;; Display the question with the answer. But without cursor-in-echo-area.
|
||||
(message "%s%s" prompt (char-to-string char))
|
||||
char))
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ reinserts the fill prefix in each resulting line."
|
|||
;; Added `!' for doxygen comments starting with `//!' or `/*!'.
|
||||
;; Added `%' for TeX comments.
|
||||
;; RMS: deleted the code to match `1.' and `(1)'.
|
||||
(purecopy "[ \t]*\\([-!|#%;>*·•‣⁃◦]+[ \t]*\\)*")
|
||||
(purecopy "[ \t]*\\([-–!|#%;>*·•‣⁃◦]+[ \t]*\\)*")
|
||||
"Regexp to match text at start of line that constitutes indentation.
|
||||
If Adaptive Fill mode is enabled, a prefix matching this pattern
|
||||
on the first and second lines of a paragraph is used as the
|
||||
|
|
|
|||
|
|
@ -3272,7 +3272,7 @@ window."
|
|||
(defun split-window-side-by-side (&optional size)
|
||||
"Split selected window into two windows side by side.
|
||||
The selected window becomes the left one and gets SIZE columns.
|
||||
SIZE negative means the right window gets -SIZE lines.
|
||||
SIZE negative means the right window gets -SIZE columns.
|
||||
|
||||
SIZE includes the width of the window's scroll bar; if there are
|
||||
no scroll bars, it includes the width of the divider column to
|
||||
|
|
@ -5836,15 +5836,13 @@ additional information."
|
|||
new-window new-frame)
|
||||
(set-buffer buffer)
|
||||
(setq new-window (display-buffer buffer specifiers label))
|
||||
(unless (eq new-window old-window)
|
||||
;; `display-buffer' has chosen another window, select it.
|
||||
(select-window new-window norecord)
|
||||
(setq new-frame (window-frame new-window))
|
||||
(unless (eq new-frame old-frame)
|
||||
;; `display-buffer' has chosen another frame, make sure it gets
|
||||
;; input focus and is risen.
|
||||
(select-frame-set-input-focus new-frame)))
|
||||
|
||||
(setq new-frame (window-frame new-window))
|
||||
(if (eq old-frame new-frame)
|
||||
;; Make sure new-window gets selected (Bug#8615), (Bug#6954).
|
||||
(select-window new-window norecord)
|
||||
;; `display-buffer' has chosen another frame, make sure it gets
|
||||
;; input focus and is risen.
|
||||
(select-frame-set-input-focus new-frame norecord))
|
||||
buffer))
|
||||
|
||||
(defsubst pop-to-buffer-same-window (&optional buffer-or-name norecord label)
|
||||
|
|
@ -5953,13 +5951,13 @@ Return the buffer switched to."
|
|||
(list (read-buffer-to-switch "Switch to buffer: ") nil nil))
|
||||
(let ((buffer (window-normalize-buffer-to-switch-to buffer-or-name)))
|
||||
(if (null force-same-window)
|
||||
(pop-to-buffer buffer-or-name
|
||||
'(same-window (reuse-window-dedicated . weak))
|
||||
norecord nil)
|
||||
(pop-to-buffer
|
||||
buffer '(same-window (reuse-window-dedicated . weak))
|
||||
norecord 'switch-to-buffer)
|
||||
(cond
|
||||
;; Don't call set-window-buffer if it's not needed since it
|
||||
;; might signal an error (e.g. if the window is dedicated).
|
||||
((eq buffer (window-buffer)) nil)
|
||||
((eq buffer (window-buffer)))
|
||||
((window-minibuffer-p)
|
||||
(error "Cannot switch buffers in minibuffer window"))
|
||||
((eq (window-dedicated-p) t)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
|
||||
2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Overflow, signedness and related fixes for images.
|
||||
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
(gs_load): Use printmax_t to print the widest integers possible.
|
||||
Check for integer overflow when computing image height and width.
|
||||
|
||||
2011-07-14 Paul Eggert <eggert@cs.ucla.edu>
|
||||
2011-07-17 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Integer signedness and overflow and related fixes. (Bug#9079)
|
||||
|
||||
|
|
@ -60,6 +60,9 @@
|
|||
Don't set bidi_cache_size until after xrealloc returns, because it
|
||||
might not return.
|
||||
(bidi_dump_cached_states): Use ptrdiff_t, not int, to avoid overflow.
|
||||
(bidi_cache_ensure_space): Also check that the bidi cache size
|
||||
does not exceed that of the largest Lisp string or buffer. See Eli
|
||||
Zaretskii in <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9079#29>.
|
||||
|
||||
* alloc.c (__malloc_size_t): Remove.
|
||||
All uses replaced by size_t. See Andreas Schwab's note
|
||||
|
|
@ -239,6 +242,47 @@
|
|||
Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
|
||||
well either way, and we prefer signed to unsigned.
|
||||
|
||||
2011-07-16 Juanma Barranquero <lekktu@gmail.com>
|
||||
|
||||
* makefile.w32-in (GLOBAL_SOURCES): Add gnutls.c (followup to bug#9059).
|
||||
|
||||
2011-07-16 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* fileio.c (Fcopy_file): Don't diagnose fchown failures. (Bug#9002)
|
||||
|
||||
2011-07-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* gnutls.c (syms_of_gnutls): Define `gnutls-log-level' here, since
|
||||
it's used from the C level.
|
||||
|
||||
* process.c: Use the same condition for POLL_FOR_INPUT in both
|
||||
keyboard.c and process.c (bug#1858).
|
||||
|
||||
2011-07-09 Lawrence Mitchell <wence@gmx.li>
|
||||
|
||||
* gnutls.c (Qgnutls_bootprop_min_prime_bits): New variable.
|
||||
(Fgnutls_boot): Use it.
|
||||
|
||||
2011-07-15 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* doc.c (Fsubstitute_command_keys): Revert last change.
|
||||
|
||||
2011-07-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* doc.c (Fsubstitute_command_keys): Clarify that \= really only
|
||||
quotes the next character, and doesn't affect other longer
|
||||
sequences (bug#8935).
|
||||
|
||||
* lread.c (syms_of_lread): Clarify that is isn't only
|
||||
`eval-buffer' and `eval-defun' that's affected by
|
||||
`lexical-binding' (bug#8460).
|
||||
|
||||
2011-07-15 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* xdisp.c (move_it_in_display_line_to): Fix vertical motion with
|
||||
bidi redisplay when a line includes both an image and is
|
||||
truncated.
|
||||
|
||||
2011-07-14 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix minor problems found by static checking.
|
||||
|
|
@ -253,9 +297,6 @@
|
|||
|
||||
2011-07-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* data.c (Fcdr, Fcar): Revert the last change, since it didn't
|
||||
really clarify much.
|
||||
|
||||
* search.c (Fre_search_backward): Mention `case-fold-search' in
|
||||
all the re_search_* functions (bug#8138).
|
||||
|
||||
|
|
|
|||
13
src/bidi.c
13
src/bidi.c
|
|
@ -464,9 +464,16 @@ bidi_cache_ensure_space (ptrdiff_t idx)
|
|||
if (idx >= bidi_cache_size)
|
||||
{
|
||||
ptrdiff_t new_size;
|
||||
ptrdiff_t max_size =
|
||||
min (PTRDIFF_MAX, SIZE_MAX) / elsz / BIDI_CACHE_CHUNK * BIDI_CACHE_CHUNK;
|
||||
if (max_size <= idx)
|
||||
|
||||
/* The bidi cache cannot be larger than the largest Lisp string
|
||||
or buffer. */
|
||||
ptrdiff_t string_or_buffer_bound =
|
||||
max (BUF_BYTES_MAX, STRING_BYTES_BOUND);
|
||||
|
||||
/* Also, it cannot be larger than what C can represent. */
|
||||
ptrdiff_t c_bound = min (PTRDIFF_MAX, SIZE_MAX) / elsz;
|
||||
|
||||
if (min (string_or_buffer_bound, c_bound) <= idx)
|
||||
memory_full (SIZE_MAX);
|
||||
new_size = idx - idx % BIDI_CACHE_CHUNK + BIDI_CACHE_CHUNK;
|
||||
bidi_cache = (struct bidi_it *) xrealloc (bidi_cache, new_size * elsz);
|
||||
|
|
|
|||
|
|
@ -1959,8 +1959,8 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */)
|
|||
owner and group. */
|
||||
if (input_file_statable_p)
|
||||
{
|
||||
if (!NILP (preserve_uid_gid) && fchown (ofd, st.st_uid, st.st_gid) != 0)
|
||||
report_file_error ("Doing chown", Fcons (newname, Qnil));
|
||||
if (!NILP (preserve_uid_gid))
|
||||
fchown (ofd, st.st_uid, st.st_gid);
|
||||
if (fchmod (ofd, st.st_mode & 07777) != 0)
|
||||
report_file_error ("Doing chmod", Fcons (newname, Qnil));
|
||||
}
|
||||
|
|
|
|||
32
src/gnutls.c
32
src/gnutls.c
|
|
@ -35,7 +35,6 @@ static int
|
|||
emacs_gnutls_handle_error (gnutls_session_t, int err);
|
||||
|
||||
static Lisp_Object Qgnutls_dll;
|
||||
static Lisp_Object Qgnutls_log_level;
|
||||
static Lisp_Object Qgnutls_code;
|
||||
static Lisp_Object Qgnutls_anon, Qgnutls_x509pki;
|
||||
static Lisp_Object Qgnutls_e_interrupted, Qgnutls_e_again,
|
||||
|
|
@ -50,6 +49,7 @@ static Lisp_Object Qgnutls_bootprop_crlfiles;
|
|||
static Lisp_Object Qgnutls_bootprop_callbacks;
|
||||
static Lisp_Object Qgnutls_bootprop_loglevel;
|
||||
static Lisp_Object Qgnutls_bootprop_hostname;
|
||||
static Lisp_Object Qgnutls_bootprop_min_prime_bits;
|
||||
static Lisp_Object Qgnutls_bootprop_verify_flags;
|
||||
static Lisp_Object Qgnutls_bootprop_verify_hostname_error;
|
||||
|
||||
|
|
@ -105,6 +105,8 @@ DEF_GNUTLS_FN (int, gnutls_certificate_verify_peers2,
|
|||
DEF_GNUTLS_FN (int, gnutls_credentials_set,
|
||||
(gnutls_session_t, gnutls_credentials_type_t, void *));
|
||||
DEF_GNUTLS_FN (void, gnutls_deinit, (gnutls_session_t));
|
||||
DEF_GNUTLS_FN (void, gnutls_dh_set_prime_bits,
|
||||
(gnutls_session_t, unsigned int));
|
||||
DEF_GNUTLS_FN (int, gnutls_error_is_fatal, (int));
|
||||
DEF_GNUTLS_FN (int, gnutls_global_init, (void));
|
||||
DEF_GNUTLS_FN (void, gnutls_global_set_log_function, (gnutls_log_func));
|
||||
|
|
@ -143,7 +145,6 @@ static int
|
|||
init_gnutls_functions (Lisp_Object libraries)
|
||||
{
|
||||
HMODULE library;
|
||||
Lisp_Object gnutls_log_level = Fsymbol_value (Qgnutls_log_level);
|
||||
int max_log_level = 1;
|
||||
|
||||
if (!(library = w32_delayed_load (libraries, Qgnutls_dll)))
|
||||
|
|
@ -169,6 +170,7 @@ init_gnutls_functions (Lisp_Object libraries)
|
|||
LOAD_GNUTLS_FN (library, gnutls_certificate_verify_peers2);
|
||||
LOAD_GNUTLS_FN (library, gnutls_credentials_set);
|
||||
LOAD_GNUTLS_FN (library, gnutls_deinit);
|
||||
LOAD_GNUTLS_FN (library, gnutls_dh_set_prime_bits);
|
||||
LOAD_GNUTLS_FN (library, gnutls_error_is_fatal);
|
||||
LOAD_GNUTLS_FN (library, gnutls_global_init);
|
||||
LOAD_GNUTLS_FN (library, gnutls_global_set_log_function);
|
||||
|
|
@ -191,8 +193,8 @@ init_gnutls_functions (Lisp_Object libraries)
|
|||
LOAD_GNUTLS_FN (library, gnutls_x509_crt_import);
|
||||
LOAD_GNUTLS_FN (library, gnutls_x509_crt_init);
|
||||
|
||||
if (NUMBERP (gnutls_log_level))
|
||||
max_log_level = XINT (gnutls_log_level);
|
||||
if (NUMBERP (Vgnutls_log_level))
|
||||
max_log_level = XINT (Vgnutls_log_level);
|
||||
|
||||
GNUTLS_LOG2 (1, max_log_level, "GnuTLS library loaded:",
|
||||
SDATA (Fget (Qgnutls_dll, QCloaded_from)));
|
||||
|
|
@ -218,6 +220,7 @@ init_gnutls_functions (Lisp_Object libraries)
|
|||
#define fn_gnutls_certificate_verify_peers2 gnutls_certificate_verify_peers2
|
||||
#define fn_gnutls_credentials_set gnutls_credentials_set
|
||||
#define fn_gnutls_deinit gnutls_deinit
|
||||
#define fn_gnutls_dh_set_prime_bits gnutls_dh_set_prime_bits
|
||||
#define fn_gnutls_error_is_fatal gnutls_error_is_fatal
|
||||
#define fn_gnutls_global_init gnutls_global_init
|
||||
#define fn_gnutls_global_set_log_function gnutls_global_set_log_function
|
||||
|
|
@ -394,7 +397,6 @@ emacs_gnutls_read (struct Lisp_Process *proc, char *buf, EMACS_INT nbyte)
|
|||
static int
|
||||
emacs_gnutls_handle_error (gnutls_session_t session, int err)
|
||||
{
|
||||
Lisp_Object gnutls_log_level = Fsymbol_value (Qgnutls_log_level);
|
||||
int max_log_level = 0;
|
||||
|
||||
int ret;
|
||||
|
|
@ -404,8 +406,8 @@ emacs_gnutls_handle_error (gnutls_session_t session, int err)
|
|||
if (err >= 0)
|
||||
return 0;
|
||||
|
||||
if (NUMBERP (gnutls_log_level))
|
||||
max_log_level = XINT (gnutls_log_level);
|
||||
if (NUMBERP (Vgnutls_log_level))
|
||||
max_log_level = XINT (Vgnutls_log_level);
|
||||
|
||||
/* TODO: use gnutls-error-fatalp and gnutls-error-string. */
|
||||
|
||||
|
|
@ -646,6 +648,9 @@ gnutls_certificate_set_verify_flags.
|
|||
:verify-hostname-error, if non-nil, makes a hostname mismatch an
|
||||
error. Otherwise it will be just a warning.
|
||||
|
||||
:min-prime-bits is the minimum accepted number of bits the client will
|
||||
accept in Diffie-Hellman key exchange.
|
||||
|
||||
The debug level will be set for this process AND globally for GnuTLS.
|
||||
So if you set it higher or lower at any point, it affects global
|
||||
debugging.
|
||||
|
|
@ -698,6 +703,7 @@ one trustfile (usually a CA bundle). */)
|
|||
Lisp_Object verify_flags;
|
||||
/* Lisp_Object verify_error; */
|
||||
Lisp_Object verify_hostname_error;
|
||||
Lisp_Object prime_bits;
|
||||
|
||||
CHECK_PROCESS (proc);
|
||||
CHECK_SYMBOL (type);
|
||||
|
|
@ -719,6 +725,7 @@ one trustfile (usually a CA bundle). */)
|
|||
verify_flags = Fplist_get (proplist, Qgnutls_bootprop_verify_flags);
|
||||
/* verify_error = Fplist_get (proplist, Qgnutls_bootprop_verify_error); */
|
||||
verify_hostname_error = Fplist_get (proplist, Qgnutls_bootprop_verify_hostname_error);
|
||||
prime_bits = Fplist_get (proplist, Qgnutls_bootprop_min_prime_bits);
|
||||
|
||||
if (!STRINGP (hostname))
|
||||
error ("gnutls-boot: invalid :hostname parameter");
|
||||
|
|
@ -936,6 +943,11 @@ one trustfile (usually a CA bundle). */)
|
|||
|
||||
GNUTLS_INITSTAGE (proc) = GNUTLS_STAGE_PRIORITY;
|
||||
|
||||
if (!EQ (prime_bits, Qnil))
|
||||
{
|
||||
fn_gnutls_dh_set_prime_bits (state, XUINT (prime_bits));
|
||||
}
|
||||
|
||||
if (EQ (type, Qgnutls_x509pki))
|
||||
{
|
||||
ret = fn_gnutls_credentials_set (state, GNUTLS_CRD_CERTIFICATE, x509_cred);
|
||||
|
|
@ -1103,7 +1115,6 @@ syms_of_gnutls (void)
|
|||
gnutls_global_initialized = 0;
|
||||
|
||||
DEFSYM (Qgnutls_dll, "gnutls");
|
||||
DEFSYM (Qgnutls_log_level, "gnutls-log-level");
|
||||
DEFSYM (Qgnutls_code, "gnutls-code");
|
||||
DEFSYM (Qgnutls_anon, "gnutls-anon");
|
||||
DEFSYM (Qgnutls_x509pki, "gnutls-x509pki");
|
||||
|
|
@ -1114,6 +1125,7 @@ syms_of_gnutls (void)
|
|||
DEFSYM (Qgnutls_bootprop_crlfiles, ":crlfiles");
|
||||
DEFSYM (Qgnutls_bootprop_callbacks, ":callbacks");
|
||||
DEFSYM (Qgnutls_bootprop_callbacks_verify, "verify");
|
||||
DEFSYM (Qgnutls_bootprop_min_prime_bits, ":min-prime-bits");
|
||||
DEFSYM (Qgnutls_bootprop_loglevel, ":loglevel");
|
||||
DEFSYM (Qgnutls_bootprop_verify_flags, ":verify-flags");
|
||||
DEFSYM (Qgnutls_bootprop_verify_hostname_error, ":verify-hostname-error");
|
||||
|
|
@ -1142,6 +1154,10 @@ syms_of_gnutls (void)
|
|||
defsubr (&Sgnutls_deinit);
|
||||
defsubr (&Sgnutls_bye);
|
||||
defsubr (&Sgnutls_available_p);
|
||||
|
||||
DEFVAR_INT ("gnutls-log-level", Vgnutls_log_level,
|
||||
doc: /* Logging level used by the GnuTLS functions. */);
|
||||
Vgnutls_log_level = make_number (0);
|
||||
}
|
||||
|
||||
#endif /* HAVE_GNUTLS */
|
||||
|
|
|
|||
|
|
@ -4491,9 +4491,11 @@ to load. See also `load-dangerous-libraries'. */);
|
|||
staticpro (&Qlexical_binding);
|
||||
DEFVAR_LISP ("lexical-binding", Vlexical_binding,
|
||||
doc: /* If non-nil, use lexical binding when evaluating code.
|
||||
This only applies to code evaluated by `eval-buffer' and `eval-region'.
|
||||
This variable is automatically set from the file variables of an interpreted
|
||||
Lisp file read using `load'. */);
|
||||
This applies to code evaluated by `eval-buffer' and `eval-region' and
|
||||
other commands that call these functions, like `eval-defun' and
|
||||
the like.
|
||||
This variable is automatically set from the file variables of an
|
||||
interpreted Lisp file read using `load'. */);
|
||||
Fmake_variable_buffer_local (Qlexical_binding);
|
||||
|
||||
DEFVAR_LISP ("eval-buffer-list", Veval_buffer_list,
|
||||
|
|
|
|||
|
|
@ -221,7 +221,8 @@ GLOBAL_SOURCES = dosfns.c msdos.c \
|
|||
syntax.c bytecode.c \
|
||||
process.c callproc.c unexw32.c \
|
||||
region-cache.c sound.c atimer.c \
|
||||
doprnt.c intervals.c textprop.c composite.c
|
||||
doprnt.c intervals.c textprop.c composite.c \
|
||||
gnutls.c
|
||||
SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
|
||||
xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o
|
||||
obj = $(GLOBAL_SOURCES:.c=.o)
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ static void create_pty (Lisp_Object);
|
|||
|
||||
/* If we support a window system, turn on the code to poll periodically
|
||||
to detect C-g. It isn't actually used when doing interrupt input. */
|
||||
#ifdef HAVE_WINDOW_SYSTEM
|
||||
#if defined(HAVE_WINDOW_SYSTEM) && !defined(USE_ASYNC_EVENTS)
|
||||
#define POLL_FOR_INPUT
|
||||
#endif
|
||||
|
||||
|
|
|
|||
16
src/xdisp.c
16
src/xdisp.c
|
|
@ -7928,7 +7928,14 @@ move_it_in_display_line_to (struct it *it,
|
|||
|| IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
|
||||
{
|
||||
if (!get_next_display_element (it)
|
||||
|| BUFFER_POS_REACHED_P ())
|
||||
|| BUFFER_POS_REACHED_P ()
|
||||
/* If we are past TO_CHARPOS, but never saw any
|
||||
character positions smaller than TO_CHARPOS,
|
||||
return MOVE_POS_MATCH_OR_ZV, like the
|
||||
unidirectional display did. */
|
||||
|| ((op & MOVE_TO_POS) != 0
|
||||
&& !saw_smaller_pos
|
||||
&& IT_CHARPOS (*it) > to_charpos))
|
||||
{
|
||||
result = MOVE_POS_MATCH_OR_ZV;
|
||||
break;
|
||||
|
|
@ -7939,6 +7946,13 @@ move_it_in_display_line_to (struct it *it,
|
|||
break;
|
||||
}
|
||||
}
|
||||
else if ((op & MOVE_TO_POS) != 0
|
||||
&& !saw_smaller_pos
|
||||
&& IT_CHARPOS (*it) > to_charpos)
|
||||
{
|
||||
result = MOVE_POS_MATCH_OR_ZV;
|
||||
break;
|
||||
}
|
||||
result = MOVE_LINE_TRUNCATED;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue