[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp/textmodes bibtex.el
From: |
Roland Winkler |
Subject: |
[Emacs-diffs] emacs/lisp/textmodes bibtex.el |
Date: |
Fri, 16 Jan 2009 14:21:28 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Roland Winkler <winkler> 09/01/16 14:21:28
Modified files:
lisp/textmodes : bibtex.el
Log message:
(bibtex-format-entry): For updating field delimiters, allow
fields that are composed of strings and string constants.
(bibtex-mode): Doc fix.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/textmodes/bibtex.el?cvsroot=emacs&r1=1.141&r2=1.142
Patches:
Index: bibtex.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/textmodes/bibtex.el,v
retrieving revision 1.141
retrieving revision 1.142
diff -u -b -r1.141 -r1.142
--- bibtex.el 14 Jan 2009 08:00:57 -0000 1.141
+++ bibtex.el 16 Jan 2009 14:21:26 -0000 1.142
@@ -1892,6 +1892,8 @@
last-comma delimiters unify-case braces
strings)
bibtex-entry-format))
+ (left-delim-re (regexp-quote (bibtex-field-left-delimiter)))
+ (right-delim-re (regexp-quote (bibtex-field-right-delimiter)))
bounds crossref-key req-field-list default-field-list field-list
alt-fields error-field-name)
(unwind-protect
@@ -1998,13 +2000,22 @@
;; update delimiters
(when (memq 'delimiters format)
(goto-char beg-text)
- (when (looking-at "[{\"]")
+ ;; simplified from `bibtex-parse-field-text', as we
+ ;; already checked that the field format is correct
+ (while (< (point) end-text)
+ (if (looking-at bibtex-field-const)
+ (goto-char (match-end 0))
+ (let ((boundaries (bibtex-parse-field-string)))
+ (unless (looking-at right-delim-re)
(delete-char 1)
(insert (bibtex-field-left-delimiter)))
- (goto-char (1- (marker-position end-text)))
- (when (looking-at "[}\"]")
+ (goto-char (1- (cdr boundaries)))
+ (if (looking-at left-delim-re)
+ (forward-char)
(delete-char 1)
- (insert (bibtex-field-right-delimiter))))
+ (insert (bibtex-field-right-delimiter)))))
+ (if (looking-at "[ \t\n]*#[ \t\n]*")
+ (goto-char (match-end 0)))))
;; update page dashes
(if (and (memq 'page-dashes format)
@@ -2014,7 +2025,9 @@
"\\([\"{][0-9]+\\)[ \t\n]*--?[
\t\n]*\\([0-9]+[\"}]\\)")))
(replace-match "\\1-\\2"))
- ;; remove whitespace at beginning and end of field
+ ;; Remove whitespace at beginning and end of field.
+ ;; We do not look at individual parts of the field
+ ;; as {foo } # bar # { baz} is a fine field.
(when (memq 'whitespace format)
(goto-char beg-text)
(if (looking-at "\\([{\"]\\)[ \t\n]+")
@@ -2932,7 +2945,7 @@
General information on working with BibTeX mode:
-Use commands such as \\[bibtex-Book] to get a template for a specific entry.
+Use commands such as \\<bibtex-mode-map>\\[bibtex-Book] to get a template for
a specific entry.
Then fill in all desired fields using \\[bibtex-next-field] to jump from field
to field. After having filled in all desired fields in the entry, clean the
new entry with the command \\[bibtex-clean-entry].
- [Emacs-diffs] emacs/lisp/textmodes bibtex.el,
Roland Winkler <=