* lisp/simple.el (next-line-or-history-element): Use current-column

in all position calculations.
(previous-line-or-history-element): Idem.  (Bug#33640)
This commit is contained in:
Juri Linkov 2018-12-07 00:30:51 +02:00
parent c7897c2786
commit e5682025e6

View file

@ -2120,7 +2120,11 @@ next element of the minibuffer history in the minibuffer."
(prompt-end (minibuffer-prompt-end)) (prompt-end (minibuffer-prompt-end))
(old-column (unless (and (eolp) (> (point) prompt-end)) (old-column (unless (and (eolp) (> (point) prompt-end))
(if (= (line-number-at-pos) 1) (if (= (line-number-at-pos) 1)
(max (- (current-column) (1- prompt-end)) 0) (max (- (current-column)
(save-excursion
(goto-char (1- prompt-end))
(current-column)))
0)
(current-column))))) (current-column)))))
(condition-case nil (condition-case nil
(with-no-warnings (with-no-warnings
@ -2139,7 +2143,10 @@ next element of the minibuffer history in the minibuffer."
(goto-char (point-max)) (goto-char (point-max))
(when old-column (when old-column
(if (= (line-number-at-pos) 1) (if (= (line-number-at-pos) 1)
(move-to-column (+ old-column (1- (minibuffer-prompt-end)))) (move-to-column (+ old-column
(save-excursion
(goto-char (1- (minibuffer-prompt-end)))
(current-column))))
(move-to-column old-column))))))) (move-to-column old-column)))))))
(defun previous-line-or-history-element (&optional arg) (defun previous-line-or-history-element (&optional arg)
@ -2154,7 +2161,11 @@ previous element of the minibuffer history in the minibuffer."
(prompt-end (minibuffer-prompt-end)) (prompt-end (minibuffer-prompt-end))
(old-column (unless (and (eolp) (> (point) prompt-end)) (old-column (unless (and (eolp) (> (point) prompt-end))
(if (= (line-number-at-pos) 1) (if (= (line-number-at-pos) 1)
(max (- (current-column) (1- prompt-end)) 0) (max (- (current-column)
(save-excursion
(goto-char (1- prompt-end))
(current-column)))
0)
(current-column))))) (current-column)))))
(condition-case nil (condition-case nil
(with-no-warnings (with-no-warnings
@ -2173,7 +2184,10 @@ previous element of the minibuffer history in the minibuffer."
(goto-char (minibuffer-prompt-end)) (goto-char (minibuffer-prompt-end))
(if old-column (if old-column
(if (= (line-number-at-pos) 1) (if (= (line-number-at-pos) 1)
(move-to-column (+ old-column (1- (minibuffer-prompt-end)))) (move-to-column (+ old-column
(save-excursion
(goto-char (1- (minibuffer-prompt-end)))
(current-column))))
(move-to-column old-column)) (move-to-column old-column))
;; Put the cursor at the end of the visual line instead of the ;; Put the cursor at the end of the visual line instead of the
;; logical line, so the next `previous-line-or-history-element' ;; logical line, so the next `previous-line-or-history-element'