lisp/textmodes/bibtex.el: various small bug fixes
This commit is contained in:
parent
022fe7ce8b
commit
004dedd364
2 changed files with 38 additions and 25 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2011-06-05 Roland Winkler <winkler@gnu.org>
|
||||||
|
|
||||||
|
* textmodes/bibtex.el (bibtex-generate-url-list): Fix docstring.
|
||||||
|
(bibtex-insert-kill): After yanking insert newline if necessary.
|
||||||
|
(bibtex-initialize): Call bibtex-string-files-init only once.
|
||||||
|
(bibtex-mode): Do not call easy-menu-add.
|
||||||
|
(bibtex-validate-globally): Use save-excursion in bibtex buffers.
|
||||||
|
(bibtex-yank): Set arg properly if nil.
|
||||||
|
|
||||||
2011-06-05 Roland Winkler <winkler@gnu.org>
|
2011-06-05 Roland Winkler <winkler@gnu.org>
|
||||||
|
|
||||||
* textmodes/bibtex.el (bibtex-search-entry-globally): New
|
* textmodes/bibtex.el (bibtex-search-entry-globally): New
|
||||||
|
|
|
@ -923,7 +923,7 @@ The following is a complex example, see URL `http://link.aps.org/'.
|
||||||
|
|
||||||
(((\"journal\" . \"\\\\=<\\(PR[ABCDEL]?\\|RMP\\)\\\\=>\")
|
(((\"journal\" . \"\\\\=<\\(PR[ABCDEL]?\\|RMP\\)\\\\=>\")
|
||||||
\"http://link.aps.org/abstract/%s/v%s/p%s\"
|
\"http://link.aps.org/abstract/%s/v%s/p%s\"
|
||||||
(\"journal\" \".*\" downcase)
|
(\"journal\" \".*\" upcase)
|
||||||
(\"volume\" \".*\" 0)
|
(\"volume\" \".*\" 0)
|
||||||
(\"pages\" \"\\`[A-Z]?[0-9]+\" 0)))"
|
(\"pages\" \"\\`[A-Z]?[0-9]+\" 0)))"
|
||||||
:group 'bibtex
|
:group 'bibtex
|
||||||
|
@ -1892,6 +1892,9 @@ Optional arg COMMA is as in `bibtex-enclosing-field'."
|
||||||
(push-mark)
|
(push-mark)
|
||||||
(insert (funcall fun 'bibtex-entry-kill-ring-yank-pointer
|
(insert (funcall fun 'bibtex-entry-kill-ring-yank-pointer
|
||||||
bibtex-entry-kill-ring))
|
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 (functionp bibtex-reference-keys)
|
(unless (functionp bibtex-reference-keys)
|
||||||
;; update `bibtex-reference-keys'
|
;; update `bibtex-reference-keys'
|
||||||
(save-excursion
|
(save-excursion
|
||||||
|
@ -2723,12 +2726,14 @@ When called interactively, FORCE is t, CURRENT is t if current buffer uses
|
||||||
((and (not current) (memq (current-buffer) buffer-list))
|
((and (not current) (memq (current-buffer) buffer-list))
|
||||||
(setq buffer-list (delq (current-buffer) buffer-list))))
|
(setq buffer-list (delq (current-buffer) buffer-list))))
|
||||||
;; parse keys
|
;; parse keys
|
||||||
|
(let (string-init)
|
||||||
(dolist (buffer buffer-list)
|
(dolist (buffer buffer-list)
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
(if (or force (functionp bibtex-reference-keys))
|
(if (or force (functionp bibtex-reference-keys))
|
||||||
(bibtex-parse-keys))
|
(bibtex-parse-keys))
|
||||||
(unless (functionp bibtex-strings)
|
(when (or force (functionp bibtex-strings))
|
||||||
(bibtex-parse-strings (bibtex-string-files-init)))))
|
(unless string-init (setq string-init (bibtex-string-files-init)))
|
||||||
|
(bibtex-parse-strings string-init)))))
|
||||||
;; select BibTeX buffer
|
;; select BibTeX buffer
|
||||||
(if select
|
(if select
|
||||||
(if buffer-list
|
(if buffer-list
|
||||||
|
@ -3043,10 +3048,7 @@ if that value is non-nil.
|
||||||
bibtex-font-lock-syntactic-keywords))
|
bibtex-font-lock-syntactic-keywords))
|
||||||
(setq imenu-generic-expression
|
(setq imenu-generic-expression
|
||||||
(list (list nil bibtex-entry-head bibtex-key-in-head))
|
(list (list nil bibtex-entry-head bibtex-key-in-head))
|
||||||
imenu-case-fold-search t)
|
imenu-case-fold-search t))
|
||||||
;; XEmacs needs `easy-menu-add', Emacs does not care
|
|
||||||
(easy-menu-add bibtex-edit-menu)
|
|
||||||
(easy-menu-add bibtex-entry-menu))
|
|
||||||
|
|
||||||
(defun bibtex-field-list (entry-type)
|
(defun bibtex-field-list (entry-type)
|
||||||
"Return list of allowed fields for entry ENTRY-TYPE.
|
"Return list of allowed fields for entry ENTRY-TYPE.
|
||||||
|
@ -3873,6 +3875,7 @@ Return t if test was successful, nil otherwise."
|
||||||
;; Check for duplicate keys within BibTeX buffer
|
;; Check for duplicate keys within BibTeX buffer
|
||||||
(dolist (buffer buffer-list)
|
(dolist (buffer buffer-list)
|
||||||
(with-current-buffer buffer
|
(with-current-buffer buffer
|
||||||
|
(save-excursion
|
||||||
(let (entry-type key key-list)
|
(let (entry-type key key-list)
|
||||||
(goto-char (point-min))
|
(goto-char (point-min))
|
||||||
(while (re-search-forward bibtex-entry-head nil t)
|
(while (re-search-forward bibtex-entry-head nil t)
|
||||||
|
@ -3886,7 +3889,7 @@ Return t if test was successful, nil otherwise."
|
||||||
(bibtex-current-line) key)
|
(bibtex-current-line) key)
|
||||||
error-list)
|
error-list)
|
||||||
(push key key-list))))
|
(push key key-list))))
|
||||||
(push (cons buffer key-list) buffer-key-list))))
|
(push (cons buffer key-list) buffer-key-list)))))
|
||||||
|
|
||||||
;; Check for duplicate keys among BibTeX buffers
|
;; Check for duplicate keys among BibTeX buffers
|
||||||
(while (setq current-buf (pop buffer-list))
|
(while (setq current-buf (pop buffer-list))
|
||||||
|
@ -4148,6 +4151,7 @@ More precisely, reinsert the field or entry killed or yanked most recently.
|
||||||
With argument N, reinsert the Nth most recently killed BibTeX item.
|
With argument N, reinsert the Nth most recently killed BibTeX item.
|
||||||
See also the command \\[bibtex-yank-pop]."
|
See also the command \\[bibtex-yank-pop]."
|
||||||
(interactive "*p")
|
(interactive "*p")
|
||||||
|
(unless n (setq n 1))
|
||||||
(bibtex-insert-kill (1- n) t)
|
(bibtex-insert-kill (1- n) t)
|
||||||
(setq this-command 'bibtex-yank))
|
(setq this-command 'bibtex-yank))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue