emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r112279: lisp/textmodes/bibtex.el (bi


From: Roland Winkler
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r112279: lisp/textmodes/bibtex.el (bibtex-search-entries): Bug fix
Date: Sat, 13 Apr 2013 15:45:03 -0500
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 112279
committer: Roland Winkler <address@hidden>
branch nick: trunk
timestamp: Sat 2013-04-13 15:45:03 -0500
message:
  lisp/textmodes/bibtex.el (bibtex-search-entries): Bug fix
modified:
  lisp/ChangeLog
  lisp/textmodes/bibtex.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-04-13 20:41:52 +0000
+++ b/lisp/ChangeLog    2013-04-13 20:45:03 +0000
@@ -1,5 +1,10 @@
 2013-04-13  Roland Winkler  <address@hidden>
 
+       * textmodes/bibtex.el (bibtex-search-entries): Bug fix.  Use match
+       data before it gets modified by bibtex-beginning-of-entry.
+
+2013-04-13  Roland Winkler  <address@hidden>
+
        * textmodes/bibtex.el (bibtex-url): Doc fix.
 
 2013-04-13  Roland Winkler  <address@hidden>

=== modified file 'lisp/textmodes/bibtex.el'
--- a/lisp/textmodes/bibtex.el  2013-04-13 20:41:52 +0000
+++ b/lisp/textmodes/bibtex.el  2013-04-13 20:45:03 +0000
@@ -5241,19 +5241,22 @@
           (if (string= "" field)
               ;; Unrestricted search.
               (while (re-search-forward regexp nil t)
-                (let ((beg (bibtex-beginning-of-entry))
-                      (end (bibtex-end-of-entry))
-                      key)
-                  (if (and (<= beg (match-beginning 0))
-                           (<= (match-end 0) end)
-                           (save-excursion
-                             (goto-char beg)
-                             (and (looking-at bibtex-entry-head)
-                                  (setq key (bibtex-key-in-head))))
-                           (not (assoc key entries)))
-                      (push (list key file
-                                  (buffer-substring-no-properties beg end))
-                            entries))))
+                (save-excursion
+                  (let ((mbeg (match-beginning 0))
+                        (mend (match-end 0))
+                        (beg (bibtex-beginning-of-entry))
+                        (end (bibtex-end-of-entry))
+                        key)
+                    (if (and (<= beg mbeg)
+                             (<= mend end)
+                             (progn
+                               (goto-char beg)
+                               (looking-at bibtex-entry-head))
+                             (setq key (bibtex-key-in-head))
+                             (not (assoc key entries)))
+                        (push (list key file
+                                    (buffer-substring-no-properties beg end))
+                              entries)))))
             ;; The following is slow.  But it works reliably even in more
             ;; complicated cases with BibTeX string constants and crossrefed
             ;; entries.  If you prefer speed over reliability, perform an


reply via email to

[Prev in Thread] Current Thread [Next in Thread]