Commit 2c82deee authored by Paul Eggert's avatar Paul Eggert
Browse files

Merge from origin/emacs-24

c0ba5908 Fix vertical-motion and posn-at-point when word-wrap is
a323b93d Better multi-line input support in comint.el
008a04ac todo-mode.el: Restore point on setting item done  (Bug#19727)
9615c0de doc/misc/erc.texi: fix typo
c6487170 Update ERC docs and update MAINTANERS to include myself
d825f66d Fix filling circle/ellipse in Artist Mode  (Bug#19763)

parents 6eab3936 c0ba5908
2015-03-03 Kelvin White <>
* MAINTAINERS: Add myself to section 2
2015-03-03 Glenn Morris <>
2015-03-03 Glenn Morris <>
* admin.el (manual-meta-string): Use bug-gnu-emacs@gnu email address
......@@ -78,6 +78,11 @@ Bastien Guerry
Kelvin White
Eli Zaretskii
2015-03-03 Kelvin White <>
* erc.texi (Advanced Usage, Options): Add descriptions and examples
for erc-format-nick-function and erc-rename-buffers options.
(Connecting): fix typo
2015-03-03 Michael Albinus <>
2015-03-02 Daniel Colascione <>
* cl.texi (Iteration Clauses): Mention iterator support.
......@@ -667,14 +667,6 @@ your Emacs configuration file. Everything after the @code{(require
;;; Sample ERC configuration
;; Add the ERC directory to load path -- you don't need this if you are
;; using the version of ERC that comes with Emacs
(add-to-list 'load-path "~/elisp/erc")
;; Load ERC -- again, you don't need this if you are using the version
;; of ERC that comes with Emacs
(require 'erc)
;; Load authentication info from an external source. Put sensitive
;; passwords and the like in here.
(load "~/.emacs.d/.erc-auth")
......@@ -724,7 +716,7 @@ stuff, to the current ERC buffer."
(setq erc-autojoin-channels-alist '(("" "#emacs" "#erc")))
;; Rename server buffers to reflect the current network name instead
;; of IP:PORT. (e.g. "freenode" instead of ""). This
;; of SERVER:PORT. (e.g. "freenode" instead of ""). This
;; is useful when using a bouncer like ZNC where you have multiple
;; connections to the same server.
(setq erc-rename-buffers t)
2015-03-03 Juri Linkov <>
Revert the previous change of comint-line-beginning-position callers,
and modify comint-line-beginning-position instead.
* comint.el (comint-history-isearch-search)
(comint-history-isearch-message, comint-history-isearch-wrap):
Use comint-line-beginning-position instead of field-beginning.
(comint-send-input): Use either end-of-line or field-end
depending on comint-use-prompt-regexp.
(comint-line-beginning-position): Search backward
for comint-prompt-regexp if comint-use-prompt-regexp is non-nil.
Use field-beginning instead of line-beginning-position
if comint-use-prompt-regexp is nil. (Bug#19710)
2015-03-03 Robert Pluim <> (tiny change)
* calendar/todo-mode.el (todo-item-done): When done items are
hidden, restore point to its location prior to invoking this
command. (Bug#19727)
2015-03-03 Eli Zaretskii <>
* textmodes/artist.el (artist-ellipse-compute-fill-info): Use
mapcar, not mapc, to create the other half of fill-info.
2015-03-03 Nicolas Petton <>
2015-03-03 Nicolas Petton <>
* emacs-lisp/authors.el (authors-ignored-files)
......@@ -2816,7 +2816,8 @@ visible."
(goto-char (point-min))
(re-search-forward todo-done-string-start nil t)))
(buffer-read-only nil)
item done-item opoint)
item done-item
(opoint (point)))
;; Don't add empty comment to done item.
(setq comment (unless (zerop (length comment))
(concat " [" todo-comment-string ": " comment "]")))
......@@ -2854,7 +2855,9 @@ visible."
(let ((todo-show-with-done show-done))
;; When done items are shown, put cursor on first just done item.
;; When done items are visible, put point at the top of the
;; done items section. When done items are hidden, restore
;; point to its location prior to invoking this command.
(when opoint (goto-char opoint)))))))
(defun todo-item-undone ()
......@@ -1476,7 +1476,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'."
;; 1. First try searching in the initial comint text
(funcall search-fun string
(if isearch-forward bound (field-beginning))
(if isearch-forward bound (comint-line-beginning-position))
;; 2. If the above search fails, start putting next/prev history
;; elements in the comint successively, and search the string
......@@ -1492,7 +1492,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'."
(when (null comint-input-ring-index)
(error "End of history; no next item"))
(comint-next-input 1)
(goto-char (field-beginning)))
(goto-char (comint-line-beginning-position)))
;; Signal an error here explicitly, because
;; `comint-previous-input' doesn't signal an error.
......@@ -1510,7 +1510,7 @@ Intended to be added to `isearch-mode-hook' in `comint-mode'."
(unless isearch-forward
;; For backward search, don't search
;; in the comint prompt
;; Return point of the new search result
......@@ -1534,16 +1534,16 @@ the function `isearch-message'."
(if (overlayp comint-history-isearch-message-overlay)
(move-overlay comint-history-isearch-message-overlay
(goto-char (field-beginning))
(goto-char (comint-line-beginning-position))
(forward-line 0)
(setq comint-history-isearch-message-overlay
(make-overlay (save-excursion
(goto-char (field-beginning))
(goto-char (comint-line-beginning-position))
(forward-line 0)
(overlay-put comint-history-isearch-message-overlay 'evaporate t))
(overlay-put comint-history-isearch-message-overlay
'display (isearch-message-prefix ellipsis isearch-nonincremental))
......@@ -1564,7 +1564,7 @@ or to the last history element for a backward search."
(comint-goto-input (1- (ring-length comint-input-ring)))
(comint-goto-input nil))
(setq isearch-success t)
(goto-char (if isearch-forward (field-beginning) (point-max))))
(goto-char (if isearch-forward (comint-line-beginning-position) (point-max))))
(defun comint-history-isearch-push-state ()
"Save a function restoring the state of input history search.
......@@ -1788,7 +1788,10 @@ Similarly for Soar, Scheme, etc."
(let* ((pmark (process-mark proc))
(intxt (if (>= (point) (marker-position pmark))
(progn (if comint-eol-on-send (goto-char (field-end)))
(progn (if comint-eol-on-send
(if comint-use-prompt-regexp
(goto-char (field-end))))
(buffer-substring pmark (point)))
(let ((copy (funcall comint-get-old-input)))
(goto-char pmark)
......@@ -2267,6 +2270,7 @@ a buffer local variable."
(if comint-use-prompt-regexp
;; Use comint-prompt-regexp
(re-search-backward comint-prompt-regexp nil t)
......@@ -2277,7 +2281,7 @@ a buffer local variable."
;; if there are two fields on a line, then the first one is the
;; prompt, and the second one is an input field, and is front-sticky
;; (as input fields should be).
(constrain-to-field (line-beginning-position) (line-end-position))))
(constrain-to-field (field-beginning) (line-end-position))))
(defun comint-bol (&optional arg)
"Go to the beginning of line, then skip past the prompt, if any.
......@@ -3372,7 +3372,7 @@ The POINT-LIST is expected to cover the first quadrant."
;; Create the other half by mirroring the first half.
(setq both-halves
(append first-half
(lambda (i)
(artist-new-fill-item (artist-fill-item-get-x i)
(- (artist-fill-item-get-y i))
2015-03-03 Eli Zaretskii <>
* xdisp.c (move_it_in_display_line_to): Handle the case where the
last character of a screen line is whitespace, and we are under
word-wrap with overflow-newline-into-fringe turned on.
2015-03-03 Eli Zaretskii <>
2015-03-03 Eli Zaretskii <>
* xdisp.c (handle_stop, handle_single_display_spec)
......@@ -8604,7 +8604,16 @@ move_it_in_display_line_to (struct it *it,
if (it->line_wrap != WORD_WRAP
|| wrap_it.sp < 0)
|| wrap_it.sp < 0
/* If we've just found whitespace to
wrap, effectively ignore the
previous wrap point -- it is no
longer relevant, but we won't
have an opportunity to update it,
since we've reached the edge of
this screen line. */
|| (may_wrap
it->hpos = hpos_before_this_char;
it->current_x = x_before_this_char;
......@@ -8668,7 +8677,26 @@ move_it_in_display_line_to (struct it *it,
if (wrap_it.sp >= 0)
/* If the screen line ends with whitespace, and we
are under word-wrap, don't use wrap_it: it is no
longer relevant, but we won't have an opportunity
to update it, since we are done with this screen
line. */
/* If we've found TO_X, go back there, as we now
know the last word fits on this screen line. */
if ((op & MOVE_TO_X) && new_x == it->last_visible_x
&& atx_it.sp >= 0)
RESTORE_IT (it, &atx_it, atx_data);
atpos_it.sp = -1;
atx_it.sp = -1;
result = MOVE_X_REACHED;
else if (wrap_it.sp >= 0)
RESTORE_IT (it, &wrap_it, wrap_data);
atpos_it.sp = -1;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment