1
Fork 0
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:
Paul Eggert 2011-07-16 17:39:01 -07:00
commit b1f367f797
44 changed files with 479 additions and 133 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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