summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/calendar/todo-mode.el11
-rw-r--r--lisp/cus-edit.el2
-rw-r--r--lisp/emacs-lisp/elint.el2
-rw-r--r--lisp/emacs-lisp/lisp-mnt.el4
-rw-r--r--lisp/emacs-lisp/lisp-mode.el7
-rw-r--r--lisp/emulation/viper-cmd.el4
-rw-r--r--lisp/emulation/viper-ex.el27
-rw-r--r--lisp/files.el2
-rw-r--r--lisp/help-fns.el2
-rw-r--r--lisp/info-look.el3
-rw-r--r--lisp/info.el10
-rw-r--r--lisp/mail/emacsbug.el2
-rw-r--r--lisp/mail/footnote.el2
-rw-r--r--lisp/mail/rmail.el6
-rw-r--r--lisp/man.el3
-rw-r--r--lisp/org/org-clock.el3
-rw-r--r--lisp/org/org-mouse.el4
-rw-r--r--lisp/org/org.el5
-rw-r--r--lisp/progmodes/ada-mode.el2
-rw-r--r--lisp/progmodes/ruby-mode.el3
-rw-r--r--lisp/progmodes/sh-script.el2
-rw-r--r--lisp/textmodes/bibtex.el2
-rw-r--r--lisp/textmodes/reftex-ref.el3
-rw-r--r--lisp/textmodes/tex-mode.el4
-rw-r--r--lisp/vc/log-view.el3
25 files changed, 70 insertions, 48 deletions
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index dcc960fb9bf..bb9316c81d7 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -2606,7 +2606,8 @@ meaning to raise or lower the item's priority by one."
;; separator.
(when (looking-back (concat "^"
(regexp-quote todo-category-done)
- "\n"))
+ "\n")
+ (line-beginning-position 0))
(todo-backward-item))))
(todo-insert-with-overlays item)
;; If item was marked, restore the mark.
@@ -4231,7 +4232,8 @@ the values of FILTER and FILE-LIST."
(if (and (eobp)
(looking-back
(concat (regexp-quote todo-done-string)
- "\n")))
+ "\n")
+ (line-beginning-position 0)))
(delete-region (point) (progn
(forward-line -2)
(point))))))
@@ -4648,7 +4650,7 @@ name in `todo-directory'. See also the documentation string of
;; If the item ends with a non-comment parenthesis not
;; followed by a period, we lose (but we inherit that
;; problem from the legacy code).
- (when (looking-back "(\\(.*\\)) ")
+ (when (looking-back "(\\(.*\\)) " (line-beginning-position))
(setq comment (match-string 1))
(replace-match "")
(insert "[" todo-comment-string ": " comment "]"))
@@ -5342,7 +5344,8 @@ of each other."
(looking-at todo-done-string-start)
(looking-back (concat "^"
(regexp-quote todo-category-done)
- "\n")))
+ "\n")
+ (line-beginning-position 0)))
(setq num 1
done t))
(setq prefix (concat (propertize
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 9cc2fa81d07..cd894f47263 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -3115,7 +3115,7 @@ face attributes (as specified by a `default' defface entry)."
widget
(widget-get widget :default-face-attributes)))
entry)
- (unless (looking-back "^ *")
+ (unless (looking-back "^ *" (line-beginning-position))
(insert ?\n))
(insert-char ?\s (widget-get widget :extra-offset))
(if (or alist defaults show-all)
diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el
index 136467046b4..317e5a6fd3f 100644
--- a/lisp/emacs-lisp/elint.el
+++ b/lisp/emacs-lisp/elint.el
@@ -374,7 +374,7 @@ Returns the forms."
(let ((elint-current-pos (point)))
;; non-list check could be here too. errors may be out of seq.
;; quoted check cannot be elsewhere, since quotes skipped.
- (if (looking-back "'")
+ (if (looking-back "'" (1- (point)))
;; Eg cust-print.el uses ' as a comment syntax.
(elint-warning "Skipping quoted form `'%.20s...'"
(read (current-buffer)))
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index fec172d05ca..104c23c2102 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -437,9 +437,9 @@ This can be found in an RCS or SCCS header."
((re-search-forward
(concat
"@(#)"
- (if buffer-file-name
+ (if buffer-file-name
(regexp-quote (file-name-nondirectory buffer-file-name))
- "[^\t\n]*")
+ "[^\t\n]+")
"\t\\([012345679.]*\\)")
header-max t)
(match-string-no-properties 1)))))))
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 26a21d52370..108d5ccb0e3 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -855,9 +855,10 @@ is the buffer position of the start of the containing expression."
;; Handle prefix characters and whitespace
;; following an open paren. (Bug#1012)
(backward-prefix-chars)
- (while (and (not (looking-back "^[ \t]*\\|([ \t]+"))
- (or (not containing-sexp)
- (< (1+ containing-sexp) (point))))
+ (while (not (or (looking-back "^[ \t]*\\|([ \t]+"
+ (line-beginning-position))
+ (and containing-sexp
+ (>= (1+ containing-sexp) (point)))))
(forward-sexp -1)
(backward-prefix-chars))
(setq calculate-lisp-indent-last-sexp (point)))
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index bd03a870fdb..5c91df90166 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -4533,7 +4533,7 @@ One can use `` and '' to temporarily jump 1 step back."
(interactive)
(if viper-cted
(let ((p (point)) (c (current-column)) bol (indent t))
- (if (looking-back "[0^]")
+ (if (looking-back "[0^]" (1- (point)))
(progn
(if (eq ?^ (preceding-char))
(setq viper-preserve-indent t))
@@ -4545,7 +4545,7 @@ One can use `` and '' to temporarily jump 1 step back."
(delete-region (point) p)
(if indent
(indent-to (- c viper-shift-width)))
- (if (or (bolp) (looking-back "[^ \t]"))
+ (if (or (bolp) (looking-back "[^ \t]" (1- (point))))
(setq viper-cted nil)))))
;; do smart indent
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index 212f0533b8f..e6bcf8f89a4 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -455,7 +455,8 @@ reversed."
(while (and (not (eolp)) cont)
;;(re-search-forward "[^/]*/")
(re-search-forward "[^/]*\\(/\\|\n\\)")
- (if (not (looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/"))
+ (if (not (looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\/"
+ (line-beginning-position 0)))
(setq cont nil))))
(backward-char 1)
(setq ex-token (buffer-substring (point) (mark t)))
@@ -468,7 +469,8 @@ reversed."
(while (and (not (eolp)) cont)
;;(re-search-forward "[^\\?]*\\?")
(re-search-forward "[^\\?]*\\(\\?\\|\n\\)")
- (if (not (looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\\\?"))
+ (if (not (looking-back "[^\\\\]\\(\\\\\\\\\\)*\\\\\\?"
+ (line-beginning-position 0)))
(setq cont nil))
(backward-char 1)
(if (not (looking-at "\n")) (forward-char 1))))
@@ -563,14 +565,18 @@ reversed."
save-pos (point)))
(if (or (= dist 0)
- (looking-back "\\([ \t]*['`][ \t]*[a-z]*\\)")
+ (looking-back "\\([ \t]*['`][ \t]*[a-z]*\\)"
+ (line-beginning-position))
(looking-back
- "^[ \t]*[a-zA-Z!=>&~][ \t]*[/?]*[ \t]+[a-zA-Z!=>&~]+"))
+ "^[ \t]*[a-zA-Z!=>&~][ \t]*[/?]*[ \t]+[a-zA-Z!=>&~]+"
+ (line-beginning-position)))
;; Preceding characters are not the ones allowed in an Ex command
;; or we have typed past command name.
;; Note: we didn't do parsing, so there can be surprises.
- (if (or (looking-back "[a-zA-Z!=>&~][ \t]*[/?]*[ \t]*")
- (looking-back "\\([ \t]*['`][ \t]*[a-z]*\\)")
+ (if (or (looking-back "[a-zA-Z!=>&~][ \t]*[/?]*[ \t]*"
+ (line-beginning-position))
+ (looking-back "\\([ \t]*['`][ \t]*[a-z]*\\)"
+ (line-beginning-position))
(looking-at "[^ \t\n\C-m]"))
nil
(with-output-to-temp-buffer "*Completions*"
@@ -747,7 +753,8 @@ reversed."
(error "Missing closing delimiter for global regexp")
(goto-char (point-max))))
(if (not (looking-back
- (format "[^\\\\]\\(\\\\\\\\\\)*\\\\%c" c)))
+ (format "[^\\\\]\\(\\\\\\\\\\)*\\\\%c" c)
+ (line-beginning-position 0)))
(setq cont nil)
;; we are at an escaped delimiter: unescape it and continue
(delete-char -2)
@@ -963,7 +970,7 @@ reversed."
(while (re-search-forward "%\\|#" nil t)
(let ((data (match-data))
(char (buffer-substring (match-beginning 0) (match-end 0))))
- (if (looking-back (concat "\\\\" char))
+ (if (looking-back "\\\\." (- (point) 2))
(replace-match char)
(store-match-data data)
(if (string= char "%")
@@ -989,7 +996,7 @@ reversed."
(get-buffer-create viper-ex-work-buf-name))
(skip-chars-forward " \t")
(if (looking-at "!")
- (if (and (not (looking-back "[ \t]"))
+ (if (and (not (looking-back "[ \t]" (1- (point))))
;; read doesn't have a corresponding :r! form, so ! is
;; immediately interpreted as a shell command.
(not (string= ex-token "read")))
@@ -1066,7 +1073,7 @@ reversed."
(cond ((ex-cmd-accepts-multiple-files-p ex-token) (exit-minibuffer))
;; apparently the argument to an Ex command is
;; supposed to be a shell command
- ((looking-back "^[ \t]*!.*")
+ ((looking-back "^[ \t]*!.*" (line-beginning-position))
(setq ex-cmdfile t)
(insert " "))
(t
diff --git a/lisp/files.el b/lisp/files.el
index 0b011f4c363..152f1554279 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -3375,7 +3375,7 @@ local variables, but directory-local variables may still be applied."
(error "Local variables entry is missing the prefix"))
(end-of-line)
;; Discard the suffix.
- (if (looking-back suffix)
+ (if (looking-back suffix (line-beginning-position))
(delete-region (match-beginning 0) (point))
(error "Local variables entry is missing the suffix"))
(forward-line 1))
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index 7ecd271d0c8..53f4b38b9ec 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -329,7 +329,7 @@ suitable file is found, return nil."
(with-current-buffer standard-output
(fill-region-as-paragraph pt2 (point))
- (unless (looking-back "\n\n")
+ (unless (looking-back "\n\n" (- (point) 2))
(terpri))))))
(defun help-fns--compiler-macro (function)
diff --git a/lisp/info-look.el b/lisp/info-look.el
index 9cf185edf57..8a86dc81687 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -634,7 +634,8 @@ Return nil if there is nothing appropriate in the buffer near point."
(setq end (point))
(> end beg))
(and (looking-at "[ \t\n]")
- (looking-back (concat "[" significant-chars "]"))
+ (looking-back (concat "[" significant-chars "]")
+ (1- (point)))
(setq end (point))
(skip-chars-backward significant-chars)
(setq beg (point))
diff --git a/lisp/info.el b/lisp/info.el
index 01596619476..057bd77ba16 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -2577,7 +2577,9 @@ new buffer."
(save-excursion
;; Move point to the beginning of reference if point is on reference
(or (looking-at "\\*note[ \n\t]+")
- (and (looking-back "\\*note[ \n\t]+")
+ (and (looking-back "\\*note[ \n\t]+"
+ (save-excursion (skip-chars-backward " \n\t")
+ (line-beginning-position)))
(goto-char (match-beginning 0)))
(if (and (save-excursion
(goto-char (+ (point) 5)) ; skip a possible *note
@@ -4738,9 +4740,11 @@ first line or header line, and for breadcrumb links.")
;; an end of sentence
(skip-syntax-backward " ("))
(setq other-tag
- (cond ((save-match-data (looking-back "\\<see"))
+ (cond ((save-match-data (looking-back "\\<see"
+ (- (point) 3)))
"")
- ((save-match-data (looking-back "\\<in"))
+ ((save-match-data (looking-back "\\<in"
+ (- (point) 2)))
"")
((memq (char-before) '(nil ?\. ?! ??))
"See ")
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index 8cd59006d8d..f4ba2264dc8 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -295,7 +295,7 @@ usually do not have translators for other languages.\n\n")))
(insert-buffer-substring message-buf beg-pos end-pos))))
;; After Recent messages, to avoid the messages produced by
;; list-load-path-shadows.
- (unless (looking-back "\n")
+ (unless (looking-back "\n" (1- (point)))
(insert "\n"))
(insert "\n")
(insert "Load-path shadows:\n")
diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el
index ea674434a2f..86bb9e89618 100644
--- a/lisp/mail/footnote.el
+++ b/lisp/mail/footnote.el
@@ -718,7 +718,7 @@ delete the footnote with that number."
end
(point-max))))
(Footnote-goto-char-point-max)
- (when (looking-back "\n\n")
+ (when (looking-back "\n\n" (- (point) 2))
(kill-line -1))))))))
(defun Footnote-renumber-footnotes (&optional arg)
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index d150324fc79..74533f88fdf 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1787,7 +1787,7 @@ not be a new one). It returns non-nil if it got any new messages."
;; Make sure we end with a blank line unless there are
;; no messages, as required by mbox format (Bug#9974).
(unless (bobp)
- (while (not (looking-back "\n\n"))
+ (while (not (looking-back "\n\n" (- (point) 2)))
(insert "\n")))
(setq found (or
(rmail-get-new-mail-1 file-name files delete-files)
@@ -2092,7 +2092,7 @@ Value is the size of the newly read mail after conversion."
;; Make sure the read-in mbox data properly ends with a
;; blank line unless it is of size 0.
(unless (zerop size)
- (while (not (looking-back "\n\n"))
+ (while (not (looking-back "\n\n" (- (point) 2)))
(insert "\n")))
(if (not (and rmail-preserve-inbox (string= file tofile)))
(setq delete-files (cons tofile delete-files)))))
@@ -2127,7 +2127,7 @@ Value is the size of the newly read mail after conversion."
Call with point at the end of the message."
(unless (bolp)
(insert "\n"))
- (unless (looking-back "\n\n")
+ (unless (looking-back "\n\n" (- (point 2)))
(insert "\n")))
(defun rmail-add-mbox-headers ()
diff --git a/lisp/man.el b/lisp/man.el
index d9124c24e00..c5dbcba83a1 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -747,7 +747,8 @@ POS defaults to `point'."
;; Record the distance traveled.
(setq distance (- column (current-column)))
(when (looking-back
- (concat "([ \t]*\\(?:" Man-section-regexp "\\)[ \t]*)"))
+ (concat "([ \t]*\\(?:" Man-section-regexp "\\)[ \t]*)")
+ (line-beginning-position))
;; Skip section number backwards.
(goto-char (match-beginning 0))
(skip-chars-backward " \t"))
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
index 41e799f9898..c0a45b3ad13 100644
--- a/lisp/org/org-clock.el
+++ b/lisp/org/org-clock.el
@@ -1656,7 +1656,8 @@ Optional argument N tells to change by that many units."
(save-excursion ; Do not replace this with `with-current-buffer'.
(org-no-warnings (set-buffer (org-clocking-buffer)))
(goto-char org-clock-marker)
- (if (org-looking-back (concat "^[ \t]*" org-clock-string ".*"))
+ (if (org-looking-back (concat "^[ \t]*" org-clock-string ".*")
+ (line-beginning-position))
(progn (delete-region (1- (point-at-bol)) (point-at-eol))
(org-remove-empty-drawer-at "LOGBOOK" (point)))
(message "Clock gone, cancel the timer anyway")
diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el
index 160099ff055..9b218147b65 100644
--- a/lisp/org/org-mouse.el
+++ b/lisp/org/org-mouse.el
@@ -191,7 +191,7 @@ Changing this variable requires a restart of Emacs to get activated."
(interactive)
(end-of-line)
(skip-chars-backward "\t ")
- (when (org-looking-back ":[A-Za-z]+:")
+ (when (org-looking-back ":[A-Za-z]+:" (line-beginning-position))
(skip-chars-backward ":A-Za-z")
(skip-chars-backward "\t ")))
@@ -645,7 +645,7 @@ This means, between the beginning of line and the point."
'org-mode-restart))))
((or (eolp)
(and (looking-at "\\( \\|\t\\)\\(+:[0-9a-zA-Z_:]+\\)?\\( \\|\t\\)+$")
- (org-looking-back " \\|\t")))
+ (org-looking-back " \\|\t" (- (point) 2))))
(org-mouse-popup-global-menu))
((funcall get-context :checkbox)
(popup-menu
diff --git a/lisp/org/org.el b/lisp/org/org.el
index 3e032d46646..54924a9964a 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -7679,7 +7679,7 @@ command."
(re-search-forward org-outline-regexp-bol)
(beginning-of-line 0))
(skip-chars-backward " \r\n")
- (and (not (looking-back "^\*+"))
+ (and (not (looking-back "^\*+" (line-beginning-position)))
(looking-at "[ \t]+") (replace-match ""))
(unless (eobp) (forward-char 1))
(when (looking-at "^\\*")
@@ -8658,7 +8658,8 @@ links."
(when (equal (marker-buffer org-clock-marker) (current-buffer))
(save-excursion
(goto-char org-clock-marker)
- (looking-back "^.*") (match-string-no-properties 0))))
+ (buffer-substring-no-properties (line-beginning-position)
+ (point)))))
start beg end stars re re2
txt what tmp)
;; Find beginning and end of region to sort
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index 8afb92f2c90..c1bc79c599c 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -1013,7 +1013,7 @@ If PARSE-RESULT is non-nil, use it instead of calling `parse-partial-sexp'."
(defsubst ada-in-numeric-literal-p ()
"Return t if point is after a prefix of a numeric literal."
- (looking-back "\\([0-9]+#[0-9a-fA-F_]+\\)"))
+ (looking-back "\\([0-9]+#[0-9a-fA-F_]+\\)" (line-beginning-position)))
;;------------------------------------------------------------------
;; Contextual menus
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index f2fb95ce59a..0e2f66e5bc5 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -1392,7 +1392,8 @@ by `end-of-defun'."
(interactive "p")
(ruby-forward-sexp)
(let (case-fold-search)
- (when (looking-back (concat "^\\s *" ruby-block-end-re))
+ (when (looking-back (concat "^\\s *" ruby-block-end-re)
+ (line-beginning-position))
(forward-line 1))))
(defun ruby-beginning-of-indent ()
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 135f945dbb9..e4d16eb0ab6 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -4344,7 +4344,7 @@ The document is bounded by `sh-here-document-word'."
(or arg (sh--maybe-here-document)))
(defun sh--maybe-here-document ()
- (or (not (looking-back "[^<]<<"))
+ (or (not (looking-back "[^<]<<" (line-beginning-position)))
(save-excursion
(backward-char 2)
(or (sh-quoted-p)
diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index 5933559b37c..8a018520f5f 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -2229,7 +2229,7 @@ Optional arg COMMA is as in `bibtex-enclosing-field'."
bibtex-entry-kill-ring))
;; If we copied an entry from a buffer containing only this one entry,
;; it can be missing the second "\n".
- (unless (looking-back "\n\n") (insert "\n"))
+ (unless (looking-back "\n\n" (- (point 2))) (insert "\n"))
(unless (functionp bibtex-reference-keys)
;; update `bibtex-reference-keys'
(save-excursion
diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el
index be119d9db58..d0e09bff880 100644
--- a/lisp/textmodes/reftex-ref.el
+++ b/lisp/textmodes/reftex-ref.el
@@ -857,7 +857,8 @@ Optional prefix argument OTHER-WINDOW goes to the label in another window."
(docstruct (symbol-value reftex-docstruct-symbol))
;; If point is inside a \ref{} or \pageref{}, use that as
;; default value.
- (default (when (looking-back "\\\\\\(?:page\\)?ref{[-a-zA-Z0-9_*.:]*")
+ (default (when (looking-back "\\\\\\(?:page\\)?ref{[-a-zA-Z0-9_*.:]*"
+ (line-beginning-position))
(reftex-this-word "-a-zA-Z0-9_*.:")))
(label (completing-read (if default
(format "Label (default %s): " default)
diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el
index e9c7e2f114e..c26c6098364 100644
--- a/lisp/textmodes/tex-mode.el
+++ b/lisp/textmodes/tex-mode.el
@@ -1761,13 +1761,13 @@ Mark is left at original location."
;; A better way to handle this, \( .. \) etc, is probably to
;; temporarily change the syntax of the \ in \( to punctuation.
((and latex-handle-escaped-parens
- (looking-back "\\\\[])}]"))
+ (looking-back "\\\\[])}]" (- (point) 2)))
(signal 'scan-error
(list "Containing expression ends prematurely"
(- (point) 2) (prog1 (point)
(goto-char pos)))))
((and latex-handle-escaped-parens
- (looking-back "\\\\\\([({[]\\)"))
+ (looking-back "\\\\\\([({[]\\)" (- (point) 2)))
(tex-next-unmatched-eparen (match-string 1)))
(t (goto-char newpos))))))
diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el
index 98e93572206..042ea131a97 100644
--- a/lisp/vc/log-view.el
+++ b/lisp/vc/log-view.el
@@ -466,7 +466,8 @@ It assumes that a log entry starts with a line matching
(goto-char (match-beginning 0))))
;; Don't advance past the end buttons inserted by
;; `vc-print-log-setup-buttons'.
- ((looking-back "Show 2X entries Show unlimited entries")
+ ((looking-back "Show 2X entries Show unlimited entries"
+ (line-beginning-position))
(setq looping nil)
(forward-line -1))))))