Mercurial > emacs
annotate lisp/textmodes/bibtex.el @ 55338:3fe6300a67bf
*** empty log message ***
| author | Jason Rumney <jasonr@gnu.org> |
|---|---|
| date | Mon, 03 May 2004 13:51:59 +0000 |
| parents | 3b7a4fa9b2d8 |
| children | c1f70dc19ce5 |
| rev | line source |
|---|---|
|
662
8a533acedb77
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
1 ;;; bibtex.el --- BibTeX mode for GNU Emacs |
|
8a533acedb77
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
2 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3 ;; Copyright (C) 1992,94,95,96,97,98,1999,2003 Free Software Foundation, Inc. |
| 845 | 4 |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
5 ;; Author: Stefan Schoef <schoef@offis.uni-oldenburg.de> |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
6 ;; Bengt Martensson <bengt@mathematik.uni-Bremen.de> |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
7 ;; Mark Shapiro <shapiro@corto.inria.fr> |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
8 ;; Mike Newton <newton@gumby.cs.caltech.edu> |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
9 ;; Aaron Larson <alarson@src.honeywell.com> |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
10 ;; Dirk Herrmann <D.Herrmann@tu-bs.de> |
| 45849 | 11 ;; Maintainer: Roland Winkler <roland.winkler@physik.uni-erlangen.de> |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
12 ;; Keywords: BibTeX, LaTeX, TeX |
|
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
13 |
| 257 | 14 ;; This file is part of GNU Emacs. |
| 15 | |
| 16 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
| 17 ;; it under the terms of the GNU General Public License as published by | |
| 1851 | 18 ;; the Free Software Foundation; either version 2, or (at your option) |
| 257 | 19 ;; any later version. |
| 20 | |
| 21 ;; GNU Emacs is distributed in the hope that it will be useful, | |
| 22 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 23 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 24 ;; GNU General Public License for more details. | |
| 25 | |
| 26 ;; You should have received a copy of the GNU General Public License | |
| 14169 | 27 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
| 28 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
| 29 ;; Boston, MA 02111-1307, USA. | |
| 257 | 30 |
|
12700
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
31 ;;; Commentary: |
| 14169 | 32 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
33 ;; Major mode for editing and validating BibTeX files. |
| 257 | 34 |
|
12700
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
35 ;; Usage: |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
36 ;; See documentation for function bibtex-mode (or type "\M-x describe-mode" |
| 19461 | 37 ;; when you are in BibTeX mode). |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
38 |
|
12700
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
39 ;; Todo: |
|
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
40 ;; Distribute texinfo file. |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
41 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
42 ;;; Code: |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
43 |
|
26711
eac840d283b6
(bibtex-hs-forward-sexp): Added to support
Gerd Moellmann <gerd@gnu.org>
parents:
25444
diff
changeset
|
44 |
|
12700
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
45 ;; User Options: |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
46 |
| 19460 | 47 (defgroup bibtex nil |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
48 "BibTeX mode" |
| 19460 | 49 :group 'tex |
| 50 :prefix "bibtex-") | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
51 |
| 19460 | 52 (defgroup bibtex-autokey nil |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
53 "Generate automatically a key from the author/editor and the title field" |
| 19460 | 54 :group 'bibtex |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
55 :prefix "bibtex-autokey-") |
| 19460 | 56 |
| 57 (defcustom bibtex-mode-hook nil | |
| 58 "List of functions to call on entry to BibTeX mode." | |
| 59 :group 'bibtex | |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
60 :type 'hook) |
| 19460 | 61 |
| 62 (defcustom bibtex-field-delimiters 'braces | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
63 "*Type of field delimiters. Allowed values are `braces' or `double-quotes'." |
| 19460 | 64 :group 'bibtex |
| 65 :type '(choice (const braces) | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
66 (const double-quotes))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
67 |
| 19460 | 68 (defcustom bibtex-entry-delimiters 'braces |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
69 "*Type of entry delimiters. Allowed values are `braces' or `parentheses'." |
| 19460 | 70 :group 'bibtex |
| 71 :type '(choice (const braces) | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
72 (const parentheses))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
73 |
| 19460 | 74 (defcustom bibtex-include-OPTcrossref '("InProceedings" "InCollection") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
75 "*List of entries that get an OPTcrossref field." |
| 19460 | 76 :group 'bibtex |
| 77 :type '(repeat string)) | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
78 |
| 19460 | 79 (defcustom bibtex-include-OPTkey t |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
80 "*If non-nil, all entries will have an OPTkey field. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
81 If this is a string, it will be used as the initial field text. |
| 19460 | 82 If this is a function, it will be called to generate the initial field text." |
| 83 :group 'bibtex | |
| 84 :type '(choice (const :tag "None" nil) | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
85 (string :tag "Initial text") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
86 (function :tag "Initialize Function" :value fun) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
87 (other :tag "Default" t))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
88 |
| 19460 | 89 (defcustom bibtex-user-optional-fields |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
90 '(("annote" "Personal annotation (ignored)")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
91 "*List of optional fields the user wants to have always present. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
92 Entries should be of the same form as the OPTIONAL and |
| 19461 | 93 CROSSREF-OPTIONAL lists in `bibtex-entry-field-alist' (see documentation |
| 19460 | 94 of this variable for details)." |
| 95 :group 'bibtex | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
96 :type '(repeat (group (string :tag "Field") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
97 (string :tag "Comment") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
98 (option (group :inline t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
99 :extra-offset -4 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
100 (choice :tag "Init" :value "" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
101 string |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
102 function)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
103 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
104 (defcustom bibtex-entry-format |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
105 '(opts-or-alts required-fields numerical-fields) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
106 "*Type of formatting performed by `bibtex-clean-entry'. |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
107 It may be t, nil, or a list of symbols out of the following: |
| 19461 | 108 opts-or-alts Delete empty optional and alternative fields and |
| 109 remove OPT and ALT prefixes from used fields. | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
110 required-fields Signal an error if a required field is missing. |
| 19461 | 111 numerical-fields Delete delimiters around numeral fields. |
| 112 page-dashes Change double dashes in page field to single dash | |
| 113 (for scribe compatibility). | |
| 114 inherit-booktitle If entry contains a crossref field and booktitle | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
115 field is empty, it is set to the contents of the |
| 19461 | 116 title field of the crossreferenced entry. |
| 117 Caution: this will work only if buffer is | |
| 118 correctly sorted. | |
| 119 realign Realign entries, so that field texts and perhaps equal | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
120 signs (depending on the value of |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
121 `bibtex-align-at-equal-sign') begin in the same column. |
| 19461 | 122 last-comma Add or delete comma on end of last field in entry, |
| 123 according to value of `bibtex-comma-after-last-field'. | |
| 124 delimiters Change delimiters according to variables | |
| 125 `bibtex-field-delimiters' and `bibtex-entry-delimiters'. | |
| 126 unify-case Change case of entry and field names. | |
| 127 | |
| 128 The value t means do all of the above formatting actions. | |
| 129 The value nil means do no formatting at all." | |
| 19460 | 130 :group 'bibtex |
| 131 :type '(choice (const :tag "None" nil) | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
132 (const :tag "All" t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
133 (set :menu-tag "Some" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
134 (const opts-or-alts) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
135 (const required-fields) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
136 (const numerical-fields) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
137 (const page-dashes) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
138 (const inherit-booktitle) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
139 (const realign) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
140 (const last-comma) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
141 (const delimiters) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
142 (const unify-case)))) |
| 257 | 143 |
| 19460 | 144 (defcustom bibtex-clean-entry-hook nil |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
145 "*List of functions to call when entry has been cleaned. |
| 19461 | 146 Functions are called with point inside the cleaned entry, and the buffer |
| 19460 | 147 narrowed to just the entry." |
| 148 :group 'bibtex | |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
149 :type 'hook) |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
150 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
151 (defcustom bibtex-maintain-sorted-entries nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
152 "*If non-nil, BibTeX mode maintains all BibTeX entries in sorted order. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
153 Allowed non-nil values are: |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
154 plain All entries are sorted alphabetically. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
155 crossref All entries are sorted alphabetically unless an entry has a |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
156 crossref field. These crossrefed entries are placed in |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
157 alphabetical order immediately preceding the main entry. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
158 entry-class The entries are divided into classes according to their |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
159 entry name, see `bibtex-sort-entry-class'. Within each class |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
160 the entries are sorted alphabetically. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
161 See also `bibtex-sort-ignore-string-entries'." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
162 :group 'bibtex |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
163 :type '(choice (const nil) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
164 (const plain) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
165 (const crossref) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
166 (const entry-class))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
167 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
168 (defvar bibtex-sort-entry-class |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
169 '(("String") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
170 (catch-all) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
171 ("Book" "Proceedings")) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
172 "*List of classes of BibTeX entry names, used for sorting entries. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
173 If value of `bibtex-maintain-sorted-entries' is `entry-class' |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
174 entries are ordered according to the classes they belong to. Each |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
175 class contains a list of entry names. An entry `catch-all' applies |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
176 to all entries not explicitely mentioned.") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
177 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
178 (defcustom bibtex-sort-ignore-string-entries t |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
179 "*If non-nil, BibTeX @String entries are not sort-significant. |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
180 That means they are ignored when determining ordering of the buffer |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
181 \(e.g., sorting, locating alphabetical position for new entries, etc.)." |
| 19460 | 182 :group 'bibtex |
| 183 :type 'boolean) | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
184 |
| 19460 | 185 (defcustom bibtex-field-kill-ring-max 20 |
| 19461 | 186 "*Max length of `bibtex-field-kill-ring' before discarding oldest elements." |
| 19460 | 187 :group 'bibtex |
| 188 :type 'integer) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
189 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
190 (defcustom bibtex-entry-kill-ring-max 20 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
191 "*Max length of `bibtex-entry-kill-ring' before discarding oldest elements." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
192 :group 'bibtex |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
193 :type 'integer) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
194 |
| 19460 | 195 (defcustom bibtex-parse-keys-timeout 60 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
196 "*Specify interval for parsing BibTeX buffers. |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
197 All BibTeX buffers in Emacs are parsed if Emacs has been idle |
| 19461 | 198 `bibtex-parse-keys-timeout' seconds. Only buffers which were modified |
| 19460 | 199 after last parsing and which are maintained in sorted order are parsed." |
| 200 :group 'bibtex | |
| 201 :type 'integer) | |
|
15637
405b1ecbf8ba
(bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents:
15565
diff
changeset
|
202 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
203 (defcustom bibtex-parse-keys-fast t |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
204 "*If non-nil, use fast but simplified algorithm for parsing BibTeX keys. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
205 If parsing fails, try to set this variable to nil." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
206 :group 'bibtex |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
207 :type 'boolean) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
208 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
209 (defvar bibtex-entry-field-alist |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
210 '( |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
211 ("Article" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
212 ((("author" "Author1 [and Author2 ...] [and others]") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
213 ("title" "Title of the article (BibTeX converts it to lowercase)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
214 ("journal" "Name of the journal (use string, remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
215 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
216 (("volume" "Volume of the journal") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
217 ("number" "Number of the journal (only allowed if entry contains volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
218 ("pages" "Pages in the journal") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
219 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
220 ("note" "Remarks to be put at the end of the \\bibitem"))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
221 ((("author" "Author1 [and Author2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
222 ("title" "Title of the article (BibTeX converts it to lowercase)")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
223 (("pages" "Pages in the journal") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
224 ("journal" "Name of the journal (use string, remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
225 ("year" "Year of publication") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
226 ("volume" "Volume of the journal") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
227 ("number" "Number of the journal") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
228 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
229 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
230 ("Book" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
231 ((("author" "Author1 [and Author2 ...] [and others]" "" t) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
232 ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
233 ("title" "Title of the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
234 ("publisher" "Publishing company") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
235 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
236 (("volume" "Volume of the book in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
237 ("number" "Number of the book in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
238 ("series" "Series in which the book appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
239 ("address" "Address of the publisher") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
240 ("edition" "Edition of the book as a capitalized English word") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
241 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
242 ("note" "Remarks to be put at the end of the \\bibitem"))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
243 ((("author" "Author1 [and Author2 ...] [and others]" "" t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
244 ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
245 ("title" "Title of the book")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
246 (("publisher" "Publishing company") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
247 ("year" "Year of publication") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
248 ("volume" "Volume of the book in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
249 ("number" "Number of the book in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
250 ("series" "Series in which the book appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
251 ("address" "Address of the publisher") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
252 ("edition" "Edition of the book as a capitalized English word") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
253 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
254 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
255 ("Booklet" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
256 ((("title" "Title of the booklet (BibTeX converts it to lowercase)")) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
257 (("author" "Author1 [and Author2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
258 ("howpublished" "The way in which the booklet was published") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
259 ("address" "Address of the publisher") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
260 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
261 ("year" "Year of publication") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
262 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
263 ("InBook" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
264 ((("author" "Author1 [and Author2 ...] [and others]" "" t) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
265 ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
266 ("title" "Title of the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
267 ("chapter" "Chapter in the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
268 ("publisher" "Publishing company") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
269 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
270 (("volume" "Volume of the book in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
271 ("number" "Number of the book in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
272 ("series" "Series in which the book appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
273 ("type" "Word to use instead of \"chapter\"") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
274 ("address" "Address of the publisher") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
275 ("edition" "Edition of the book as a capitalized English word") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
276 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
277 ("pages" "Pages in the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
278 ("note" "Remarks to be put at the end of the \\bibitem"))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
279 ((("author" "Author1 [and Author2 ...] [and others]" "" t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
280 ("editor" "Editor1 [and Editor2 ...] [and others]" "" t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
281 ("title" "Title of the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
282 ("chapter" "Chapter in the book")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
283 (("pages" "Pages in the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
284 ("publisher" "Publishing company") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
285 ("year" "Year of publication") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
286 ("volume" "Volume of the book in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
287 ("number" "Number of the book in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
288 ("series" "Series in which the book appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
289 ("type" "Word to use instead of \"chapter\"") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
290 ("address" "Address of the publisher") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
291 ("edition" "Edition of the book as a capitalized English word") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
292 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
293 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
294 ("InCollection" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
295 ((("author" "Author1 [and Author2 ...] [and others]") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
296 ("title" "Title of the article in book (BibTeX converts it to lowercase)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
297 ("booktitle" "Name of the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
298 ("publisher" "Publishing company") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
299 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
300 (("editor" "Editor1 [and Editor2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
301 ("volume" "Volume of the book in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
302 ("number" "Number of the book in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
303 ("series" "Series in which the book appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
304 ("type" "Word to use instead of \"chapter\"") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
305 ("chapter" "Chapter in the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
306 ("pages" "Pages in the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
307 ("address" "Address of the publisher") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
308 ("edition" "Edition of the book as a capitalized English word") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
309 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
310 ("note" "Remarks to be put at the end of the \\bibitem"))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
311 ((("author" "Author1 [and Author2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
312 ("title" "Title of the article in book (BibTeX converts it to lowercase)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
313 ("booktitle" "Name of the book")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
314 (("pages" "Pages in the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
315 ("publisher" "Publishing company") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
316 ("year" "Year of publication") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
317 ("editor" "Editor1 [and Editor2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
318 ("volume" "Volume of the book in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
319 ("number" "Number of the book in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
320 ("series" "Series in which the book appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
321 ("type" "Word to use instead of \"chapter\"") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
322 ("chapter" "Chapter in the book") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
323 ("address" "Address of the publisher") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
324 ("edition" "Edition of the book as a capitalized English word") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
325 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
326 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
327 ("InProceedings" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
328 ((("author" "Author1 [and Author2 ...] [and others]") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
329 ("title" "Title of the article in proceedings (BibTeX converts it to lowercase)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
330 ("booktitle" "Name of the conference proceedings") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
331 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
332 (("editor" "Editor1 [and Editor2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
333 ("volume" "Volume of the conference proceedings in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
334 ("number" "Number of the conference proceedings in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
335 ("series" "Series in which the conference proceedings appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
336 ("pages" "Pages in the conference proceedings") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
337 ("address" "Location of the Proceedings") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
338 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
339 ("organization" "Sponsoring organization of the conference") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
340 ("publisher" "Publishing company, its location") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
341 ("note" "Remarks to be put at the end of the \\bibitem"))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
342 ((("author" "Author1 [and Author2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
343 ("title" "Title of the article in proceedings (BibTeX converts it to lowercase)")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
344 (("booktitle" "Name of the conference proceedings") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
345 ("pages" "Pages in the conference proceedings") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
346 ("year" "Year of publication") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
347 ("editor" "Editor1 [and Editor2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
348 ("volume" "Volume of the conference proceedings in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
349 ("number" "Number of the conference proceedings in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
350 ("series" "Series in which the conference proceedings appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
351 ("address" "Location of the Proceedings") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
352 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
353 ("organization" "Sponsoring organization of the conference") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
354 ("publisher" "Publishing company, its location") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
355 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
356 ("Manual" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
357 ((("title" "Title of the manual")) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
358 (("author" "Author1 [and Author2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
359 ("organization" "Publishing organization of the manual") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
360 ("address" "Address of the organization") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
361 ("edition" "Edition of the manual as a capitalized English word") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
362 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
363 ("year" "Year of publication") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
364 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
365 ("MastersThesis" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
366 ((("author" "Author1 [and Author2 ...] [and others]") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
367 ("title" "Title of the master\'s thesis (BibTeX converts it to lowercase)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
368 ("school" "School where the master\'s thesis was written") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
369 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
370 (("type" "Type of the master\'s thesis (if other than \"Master\'s thesis\")") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
371 ("address" "Address of the school (if not part of field \"school\") or country") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
372 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
373 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
374 ("Misc" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
375 (() |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
376 (("author" "Author1 [and Author2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
377 ("title" "Title of the work (BibTeX converts it to lowercase)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
378 ("howpublished" "The way in which the work was published") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
379 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
380 ("year" "Year of publication") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
381 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
382 ("PhdThesis" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
383 ((("author" "Author1 [and Author2 ...] [and others]") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
384 ("title" "Title of the PhD. thesis") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
385 ("school" "School where the PhD. thesis was written") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
386 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
387 (("type" "Type of the PhD. thesis") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
388 ("address" "Address of the school (if not part of field \"school\") or country") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
389 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
390 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
391 ("Proceedings" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
392 ((("title" "Title of the conference proceedings") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
393 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
394 (("booktitle" "Title of the proceedings for cross references") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
395 ("editor" "Editor1 [and Editor2 ...] [and others]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
396 ("volume" "Volume of the conference proceedings in the series") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
397 ("number" "Number of the conference proceedings in a small series (overwritten by volume)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
398 ("series" "Series in which the conference proceedings appeared") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
399 ("address" "Location of the Proceedings") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
400 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
401 ("organization" "Sponsoring organization of the conference") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
402 ("publisher" "Publishing company, its location") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
403 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
404 ("TechReport" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
405 ((("author" "Author1 [and Author2 ...] [and others]") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
406 ("title" "Title of the technical report (BibTeX converts it to lowercase)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
407 ("institution" "Sponsoring institution of the report") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
408 ("year" "Year of publication")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
409 (("type" "Type of the report (if other than \"technical report\")") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
410 ("number" "Number of the technical report") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
411 ("address" "Address of the institution (if not part of field \"institution\") or country") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
412 ("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
413 ("note" "Remarks to be put at the end of the \\bibitem")))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
414 ("Unpublished" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
415 ((("author" "Author1 [and Author2 ...] [and others]") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
416 ("title" "Title of the unpublished work (BibTeX converts it to lowercase)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
417 ("note" "Remarks to be put at the end of the \\bibitem")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
418 (("month" "Month of the publication as a string (remove braces)") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
419 ("year" "Year of publication")))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
420 ) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
421 |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
422 "Defines entry types and their associated fields. |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
423 List of |
|
43950
5ef8be2a8db1
(bibtex-sort-ignore-string-entries)
Pavel Jan?k <Pavel@Janik.cz>
parents:
43758
diff
changeset
|
424 \(ENTRY-NAME (REQUIRED OPTIONAL) (CROSSREF-REQUIRED CROSSREF-OPTIONAL)) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
425 triples. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
426 If the third element is nil, the first pair is always used. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
427 If not, the second pair is used in the case of presence of a crossref |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
428 field and the third in the case of absence. |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
429 REQUIRED, OPTIONAL, CROSSREF-REQUIRED and CROSSREF-OPTIONAL are lists. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
430 Each element of these lists is a list of the form |
|
43950
5ef8be2a8db1
(bibtex-sort-ignore-string-entries)
Pavel Jan?k <Pavel@Janik.cz>
parents:
43758
diff
changeset
|
431 \(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG). |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
432 COMMENT-STRING, INIT, and ALTERNATIVE-FLAG are optional. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
433 FIELD-NAME is the name of the field, COMMENT-STRING the comment to |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
434 appear in the echo area, INIT is either the initial content of the |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
435 field or a function, which is called to determine the initial content |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
436 of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the |
| 19461 | 437 field is an alternative. ALTERNATIVE-FLAG may be t only in the |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
438 REQUIRED or CROSSREF-REQUIRED lists.") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
439 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
440 (defvar bibtex-comment-start "@Comment" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
441 "String starting a BibTeX comment.") |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
442 |
| 19460 | 443 (defcustom bibtex-add-entry-hook nil |
| 444 "List of functions to call when entry has been inserted." | |
| 445 :group 'bibtex | |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
446 :type 'hook) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
447 |
| 19460 | 448 (defcustom bibtex-predefined-month-strings |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
449 '(("jan" . "January") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
450 ("feb" . "February") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
451 ("mar" . "March") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
452 ("apr" . "April") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
453 ("may" . "May") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
454 ("jun" . "June") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
455 ("jul" . "July") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
456 ("aug" . "August") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
457 ("sep" . "September") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
458 ("oct" . "October") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
459 ("nov" . "November") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
460 ("dec" . "December")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
461 "Alist of month string definitions used in the BibTeX style files. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
462 Each element is a pair of strings (ABBREVIATION . EXPANSION)." |
| 19460 | 463 :group 'bibtex |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
464 :type '(repeat (cons (string :tag "Month abbreviation") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
465 (string :tag "Month expansion")))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
466 |
| 19460 | 467 (defcustom bibtex-predefined-strings |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
468 (append |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
469 bibtex-predefined-month-strings |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
470 '(("acmcs" . "ACM Computing Surveys") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
471 ("acta" . "Acta Informatica") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
472 ("cacm" . "Communications of the ACM") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
473 ("ibmjrd" . "IBM Journal of Research and Development") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
474 ("ibmsj" . "IBM Systems Journal") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
475 ("ieeese" . "IEEE Transactions on Software Engineering") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
476 ("ieeetc" . "IEEE Transactions on Computers") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
477 ("ieeetcad" . "IEEE Transactions on Computer-Aided Design of Integrated Circuits") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
478 ("ipl" . "Information Processing Letters") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
479 ("jacm" . "Journal of the ACM") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
480 ("jcss" . "Journal of Computer and System Sciences") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
481 ("scp" . "Science of Computer Programming") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
482 ("sicomp" . "SIAM Journal on Computing") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
483 ("tcs" . "Theoretical Computer Science") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
484 ("tocs" . "ACM Transactions on Computer Systems") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
485 ("tods" . "ACM Transactions on Database Systems") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
486 ("tog" . "ACM Transactions on Graphics") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
487 ("toms" . "ACM Transactions on Mathematical Software") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
488 ("toois" . "ACM Transactions on Office Information Systems") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
489 ("toplas" . "ACM Transactions on Programming Languages and Systems"))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
490 "Alist of string definitions used in the BibTeX style files. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
491 Each element is a pair of strings (ABBREVIATION . EXPANSION)." |
| 19460 | 492 :group 'bibtex |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
493 :type '(repeat (cons (string :tag "String") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
494 (string :tag "String expansion")))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
495 |
| 19460 | 496 (defcustom bibtex-string-files nil |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
497 "*List of BibTeX files containing string definitions. |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
498 Those files must be specified using pathnames relative to the |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
499 directories specified in `bibtex-string-file-path'." |
| 19460 | 500 :group 'bibtex |
| 501 :type '(repeat file)) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
502 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
503 (defvar bibtex-string-file-path (getenv "BIBINPUTS") |
|
26711
eac840d283b6
(bibtex-hs-forward-sexp): Added to support
Gerd Moellmann <gerd@gnu.org>
parents:
25444
diff
changeset
|
504 "*Colon separated list of paths to search for `bibtex-string-files'.") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
505 |
| 19460 | 506 (defcustom bibtex-help-message t |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
507 "*If non-nil print help messages in the echo area on entering a new field." |
| 19460 | 508 :group 'bibtex |
| 509 :type 'boolean) | |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
510 |
| 19460 | 511 (defcustom bibtex-autokey-prefix-string "" |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
512 "*String to use as a prefix for all generated keys. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
513 See `bibtex-generate-autokey' for details." |
| 19460 | 514 :group 'bibtex-autokey |
| 515 :type 'string) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
516 |
| 19460 | 517 (defcustom bibtex-autokey-names 1 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
518 "*Number of names to use for the automatically generated reference key. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
519 Possibly more names are used according to `bibtex-autokey-names-stretch'. |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
520 If this variable is nil, all names are used. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
521 See `bibtex-generate-autokey' for details." |
| 19460 | 522 :group 'bibtex-autokey |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
523 :type '(choice (const :tag "All" infty) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
524 integer)) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
525 |
| 19460 | 526 (defcustom bibtex-autokey-names-stretch 0 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
527 "*Number of names that can additionally be used. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
528 These names are used only, if all names are used then. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
529 See `bibtex-generate-autokey' for details." |
| 19460 | 530 :group 'bibtex-autokey |
| 531 :type 'integer) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
532 |
| 19460 | 533 (defcustom bibtex-autokey-additional-names "" |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
534 "*String to prepend to the generated key if not all names could be used. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
535 See `bibtex-generate-autokey' for details." |
| 19460 | 536 :group 'bibtex-autokey |
| 537 :type 'string) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
538 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
539 (defvar bibtex-autokey-transcriptions |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
540 '(;; language specific characters |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
541 ("\\\\aa" . "a") ; \aa -> a |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
542 ("\\\\AA" . "A") ; \AA -> A |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
543 ("\\\"a\\|\\\\\\\"a\\|\\\\ae" . "ae") ; "a,\"a,\ae -> ae |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
544 ("\\\"A\\|\\\\\\\"A\\|\\\\AE" . "Ae") ; "A,\"A,\AE -> Ae |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
545 ("\\\\i" . "i") ; \i -> i |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
546 ("\\\\j" . "j") ; \j -> j |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
547 ("\\\\l" . "l") ; \l -> l |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
548 ("\\\\L" . "L") ; \L -> L |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
549 ("\\\"o\\|\\\\\\\"o\\|\\\\o\\|\\\\oe" . "oe") ; "o,\"o,\o,\oe -> oe |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
550 ("\\\"O\\|\\\\\\\"O\\|\\\\O\\|\\\\OE" . "Oe") ; "O,\"O,\O,\OE -> Oe |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
551 ("\\\"s\\|\\\\\\\"s\\|\\\\3" . "ss") ; "s,\"s,\3 -> ss |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
552 ("\\\"u\\|\\\\\\\"u" . "ue") ; "u,\"u -> ue |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
553 ("\\\"U\\|\\\\\\\"U" . "Ue") ; "U,\"U -> Ue |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
554 ;; accents |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
555 ("\\\\`\\|\\\\'\\|\\\\\\^\\|\\\\~\\|\\\\=\\|\\\\\\.\\|\\\\u\\|\\\\v\\|\\\\H\\|\\\\t\\|\\\\c\\|\\\\d\\|\\\\b" . "") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
556 ;; braces, quotes, concatenation. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
557 ("[`'\"{}#]" . "") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
558 ;; spaces |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
559 ("[ \t\n]+" . " ")) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
560 "Alist of (OLD-REGEXP . NEW-STRING) pairs. |
| 19461 | 561 Used by the default values of `bibtex-autokey-name-change-strings' and |
| 562 `bibtex-autokey-titleword-change-strings'. Defaults to translating some | |
| 563 language specific characters to their ASCII transcriptions, and | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
564 removing any character accents.") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
565 |
| 19460 | 566 (defcustom bibtex-autokey-name-change-strings |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
567 bibtex-autokey-transcriptions |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
568 "Alist of (OLD-REGEXP . NEW-STRING) pairs. |
| 19461 | 569 Any part of name matching a OLD-REGEXP is replaced by NEW-STRING. |
| 570 Case is significant in OLD-REGEXP. All regexps are tried in the | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
571 order in which they appear in the list. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
572 See `bibtex-generate-autokey' for details." |
| 19460 | 573 :group 'bibtex-autokey |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
574 :type '(repeat (cons (regexp :tag "Old") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
575 (string :tag "New")))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
576 |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
577 (defcustom bibtex-autokey-name-case-convert 'downcase |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
578 "*Function called for each name to perform case conversion. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
579 See `bibtex-generate-autokey' for details." |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
580 :group 'bibtex-autokey |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
581 :type '(choice (const :tag "Preserve case" identity) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
582 (const :tag "Downcase" downcase) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
583 (const :tag "Capitalize" capitalize) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
584 (const :tag "Upcase" upcase) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
585 (function :tag "Conversion function"))) |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
586 |
| 19460 | 587 (defcustom bibtex-autokey-name-length 'infty |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
588 "*Number of characters from name to incorporate into key. |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
589 If this is set to anything but a number, all characters are used. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
590 See `bibtex-generate-autokey' for details." |
| 19460 | 591 :group 'bibtex-autokey |
| 592 :type '(choice (const :tag "All" infty) | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
593 integer)) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
594 |
| 19460 | 595 (defcustom bibtex-autokey-name-separator "" |
| 596 "*String that comes between any two names in the key. | |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
597 See `bibtex-generate-autokey' for details." |
| 19460 | 598 :group 'bibtex-autokey |
| 599 :type 'string) | |
| 600 | |
| 601 (defcustom bibtex-autokey-year-length 2 | |
|
20866
2501e131622d
(bibtex-autokey-year-length): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
20459
diff
changeset
|
602 "*Number of rightmost digits from the year field to incorporate into key. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
603 See `bibtex-generate-autokey' for details." |
| 19460 | 604 :group 'bibtex-autokey |
| 605 :type 'integer) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
606 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
607 (defcustom bibtex-autokey-use-crossref t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
608 "*If non-nil use fields from crossreferenced entry if necessary. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
609 If this variable is non-nil and some field has no entry, but a |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
610 valid crossref entry, the field from the crossreferenced entry is used. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
611 See `bibtex-generate-autokey' for details." |
| 19460 | 612 :group 'bibtex-autokey |
| 613 :type 'boolean) | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
614 |
| 19460 | 615 (defcustom bibtex-autokey-titlewords 5 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
616 "*Number of title words to use for the automatically generated reference key. |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
617 If this is set to anything but a number, all title words are used. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
618 Possibly more words from the title are used according to |
| 19461 | 619 `bibtex-autokey-titlewords-stretch'. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
620 See `bibtex-generate-autokey' for details." |
| 19460 | 621 :group 'bibtex-autokey |
| 622 :type '(choice (const :tag "All" infty) | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
623 integer)) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
624 |
| 19460 | 625 (defcustom bibtex-autokey-title-terminators |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
626 '("\\." "!" "\\?" ":" ";" "--") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
627 "*Regexp list defining the termination of the main part of the title. |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
628 Case of the regexps is ignored. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
629 See `bibtex-generate-autokey' for details." |
| 19460 | 630 :group 'bibtex-autokey |
| 631 :type '(repeat regexp)) | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
632 |
| 19460 | 633 (defcustom bibtex-autokey-titlewords-stretch 2 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
634 "*Number of words that can additionally be used from the title. |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
635 These words are used only, if a sentence from the title can be ended then. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
636 See `bibtex-generate-autokey' for details." |
| 19460 | 637 :group 'bibtex-autokey |
| 638 :type 'integer) | |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
639 |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
640 (defcustom bibtex-autokey-titleword-ignore |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
641 '("A" "An" "On" "The" "Eine?" "Der" "Die" "Das" |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
642 "[^A-Z].*" ".*[^a-zA-Z0-9].*") |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
643 "*Determines words from the title that are not to be used in the key. |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
644 Each item of the list is a regexp. If a word of the title matchs a |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
645 regexp from that list, it is not included in the title part of the key. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
646 See `bibtex-generate-autokey' for details." |
| 19460 | 647 :group 'bibtex-autokey |
| 648 :type '(repeat regexp)) | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
649 |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
650 (defcustom bibtex-autokey-titleword-case-convert 'downcase |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
651 "*Function called for each titleword to perform case conversion. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
652 See `bibtex-generate-autokey' for details." |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
653 :group 'bibtex-autokey |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
654 :type '(choice (const :tag "Preserve case" identity) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
655 (const :tag "Downcase" downcase) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
656 (const :tag "Capitalize" capitalize) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
657 (const :tag "Upcase" upcase) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
658 (function :tag "Conversion function"))) |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
659 |
| 19460 | 660 (defcustom bibtex-autokey-titleword-abbrevs nil |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
661 "*Determines exceptions to the usual abbreviation mechanism. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
662 An alist of (OLD-REGEXP . NEW-STRING) pairs. Case is ignored |
| 19461 | 663 in matching against OLD-REGEXP, and the first matching pair is used. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
664 See `bibtex-generate-autokey' for details." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
665 :group 'bibtex-autokey |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
666 :type '(repeat (cons (regexp :tag "Old") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
667 (string :tag "New")))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
668 |
| 19460 | 669 (defcustom bibtex-autokey-titleword-change-strings |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
670 bibtex-autokey-transcriptions |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
671 "Alist of (OLD-REGEXP . NEW-STRING) pairs. |
| 19461 | 672 Any part of title word matching a OLD-REGEXP is replaced by NEW-STRING. |
| 673 Case is significant in OLD-REGEXP. All regexps are tried in the | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
674 order in which they appear in the list. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
675 See `bibtex-generate-autokey' for details." |
| 19460 | 676 :group 'bibtex-autokey |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
677 :type '(repeat (cons (regexp :tag "Old") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
678 (string :tag "New")))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
679 |
| 19460 | 680 (defcustom bibtex-autokey-titleword-length 5 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
681 "*Number of characters from title words to incorporate into key. |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
682 If this is set to anything but a number, all characters are used. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
683 See `bibtex-generate-autokey' for details." |
| 19460 | 684 :group 'bibtex-autokey |
| 685 :type '(choice (const :tag "All" infty) | |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
686 integer)) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
687 |
| 19460 | 688 (defcustom bibtex-autokey-titleword-separator "_" |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
689 "*String to be put between the title words. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
690 See `bibtex-generate-autokey' for details." |
| 19460 | 691 :group 'bibtex-autokey |
| 692 :type 'string) | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
693 |
| 19460 | 694 (defcustom bibtex-autokey-name-year-separator "" |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
695 "*String to be put between name part and year part of key. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
696 See `bibtex-generate-autokey' for details." |
| 19460 | 697 :group 'bibtex-autokey |
| 698 :type 'string) | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
699 |
| 19460 | 700 (defcustom bibtex-autokey-year-title-separator ":_" |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
701 "*String to be put between name part and year part of key. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
702 See `bibtex-generate-autokey' for details." |
| 19460 | 703 :group 'bibtex-autokey |
| 704 :type 'string) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
705 |
| 19460 | 706 (defcustom bibtex-autokey-edit-before-use t |
| 707 "*If non-nil, user is allowed to edit the generated key before it is used." | |
| 708 :group 'bibtex-autokey | |
| 709 :type 'boolean) | |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
710 |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
711 (defcustom bibtex-autokey-before-presentation-function nil |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
712 "*Function to call before the generated key is presented. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
713 If non-nil this should be a function which is called before the generated key |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
714 is presented. The function must take one argument (the automatically |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
715 generated key), and must return a string (the key to use)." |
| 19460 | 716 :group 'bibtex-autokey |
|
35962
ad7104908c16
(bibtex-autokey-before-presentation-function): Fix :type.
Dave Love <fx@gnu.org>
parents:
27701
diff
changeset
|
717 :type '(choice (const nil) function)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
718 |
| 19460 | 719 (defcustom bibtex-entry-offset 0 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
720 "*Offset for BibTeX entries. |
| 19460 | 721 Added to the value of all other variables which determine colums." |
| 722 :group 'bibtex | |
| 723 :type 'integer) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
724 |
| 19460 | 725 (defcustom bibtex-field-indentation 2 |
| 726 "*Starting column for the name part in BibTeX fields." | |
| 727 :group 'bibtex | |
| 728 :type 'integer) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
729 |
| 19460 | 730 (defcustom bibtex-text-indentation |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
731 (+ bibtex-field-indentation |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
732 (length "organization = ")) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
733 "*Starting column for the text part in BibTeX fields. |
| 19460 | 734 Should be equal to the space needed for the longest name part." |
| 735 :group 'bibtex | |
| 736 :type 'integer) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
737 |
| 19460 | 738 (defcustom bibtex-contline-indentation |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
739 (+ bibtex-text-indentation 1) |
| 19460 | 740 "*Starting column for continuation lines of BibTeX fields." |
| 741 :group 'bibtex | |
| 742 :type 'integer) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
743 |
| 19460 | 744 (defcustom bibtex-align-at-equal-sign nil |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
745 "*If non-nil, align fields at equal sign instead of field text. |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
746 If non-nil, the column for the equal sign is the value of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
747 `bibtex-text-indentation', minus 2." |
| 19460 | 748 :group 'bibtex |
| 749 :type 'boolean) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
750 |
| 19460 | 751 (defcustom bibtex-comma-after-last-field nil |
| 752 "*If non-nil, a comma is put at end of last field in the entry template." | |
| 753 :group 'bibtex | |
| 754 :type 'boolean) | |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
755 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
756 (defcustom bibtex-autoadd-commas t |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
757 "If non-nil automatically add missing commas at end of BibTeX fields." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
758 :type 'boolean) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
759 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
760 (defcustom bibtex-autofill-types '("Proceedings") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
761 "Automatically fill fields if possible for those BibTeX entry types." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
762 :type '(repeat string)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
763 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
764 (defcustom bibtex-complete-key-cleanup nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
765 "*Function called by `bibtex-complete' after insertion of a key fragment." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
766 :group 'bibtex-autokey |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
767 :type '(choice (const :tag "None" nil) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
768 (function :tag "Cleanup function"))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
769 |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
770 ;; bibtex-font-lock-keywords is a user option as well, but since the |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
771 ;; patterns used to define this variable are defined in a later |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
772 ;; section of this file, it is defined later. |
|
26711
eac840d283b6
(bibtex-hs-forward-sexp): Added to support
Gerd Moellmann <gerd@gnu.org>
parents:
25444
diff
changeset
|
773 |
|
eac840d283b6
(bibtex-hs-forward-sexp): Added to support
Gerd Moellmann <gerd@gnu.org>
parents:
25444
diff
changeset
|
774 |
|
12700
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
775 ;; Syntax Table, Keybindings and BibTeX Entry List |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
776 (defvar bibtex-mode-syntax-table |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
777 (let ((st (make-syntax-table))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
778 (modify-syntax-entry ?\" "\"" st) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
779 (modify-syntax-entry ?$ "$$ " st) |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
780 (modify-syntax-entry ?% "< " st) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
781 (modify-syntax-entry ?' "w " st) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
782 (modify-syntax-entry ?@ "w " st) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
783 (modify-syntax-entry ?\\ "\\" st) |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
784 (modify-syntax-entry ?\f "> " st) |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
785 (modify-syntax-entry ?\n "> " st) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
786 ;; Keys cannot have = in them (wrong font-lock of @string{foo=bar}). |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
787 (modify-syntax-entry ?= "." st) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
788 (modify-syntax-entry ?~ " " st) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
789 st) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
790 "Syntax table used in BibTeX mode buffers.") |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
791 |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
792 (defvar bibtex-mode-map |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
793 (let ((km (make-sparse-keymap))) |
|
26711
eac840d283b6
(bibtex-hs-forward-sexp): Added to support
Gerd Moellmann <gerd@gnu.org>
parents:
25444
diff
changeset
|
794 ;; The Key `C-c&' is reserved for reftex.el |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
795 (define-key km "\t" 'bibtex-find-text) |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
796 (define-key km "\n" 'bibtex-next-field) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
797 (define-key km "\M-\t" 'bibtex-complete) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
798 (define-key km "\C-c\"" 'bibtex-remove-delimiters) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
799 (define-key km "\C-c{" 'bibtex-remove-delimiters) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
800 (define-key km "\C-c}" 'bibtex-remove-delimiters) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
801 (define-key km "\C-c\C-c" 'bibtex-clean-entry) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
802 (define-key km "\C-c\C-q" 'bibtex-fill-entry) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
803 (define-key km "\C-c?" 'bibtex-print-help-message) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
804 (define-key km "\C-c\C-p" 'bibtex-pop-previous) |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
805 (define-key km "\C-c\C-n" 'bibtex-pop-next) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
806 (define-key km "\C-c\C-k" 'bibtex-kill-field) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
807 (define-key km "\C-c\M-k" 'bibtex-copy-field-as-kill) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
808 (define-key km "\C-c\C-w" 'bibtex-kill-entry) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
809 (define-key km "\C-c\M-w" 'bibtex-copy-entry-as-kill) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
810 (define-key km "\C-c\C-y" 'bibtex-yank) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
811 (define-key km "\C-c\M-y" 'bibtex-yank-pop) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
812 (define-key km "\C-c\C-d" 'bibtex-empty-field) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
813 (define-key km "\C-c\C-f" 'bibtex-make-field) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
814 (define-key km "\C-c$" 'bibtex-ispell-abstract) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
815 (define-key km "\M-\C-a" 'bibtex-beginning-of-entry) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
816 (define-key km "\M-\C-e" 'bibtex-end-of-entry) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
817 (define-key km "\C-\M-l" 'bibtex-reposition-window) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
818 (define-key km "\C-\M-h" 'bibtex-mark-entry) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
819 (define-key km "\C-c\C-b" 'bibtex-entry) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
820 (define-key km "\C-c\C-rn" 'bibtex-narrow-to-entry) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
821 (define-key km "\C-c\C-rw" 'widen) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
822 (define-key km "\C-c\C-o" 'bibtex-remove-OPT-or-ALT) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
823 (define-key km "\C-c\C-e\C-i" 'bibtex-InProceedings) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
824 (define-key km "\C-c\C-ei" 'bibtex-InCollection) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
825 (define-key km "\C-c\C-eI" 'bibtex-InBook) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
826 (define-key km "\C-c\C-e\C-a" 'bibtex-Article) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
827 (define-key km "\C-c\C-e\C-b" 'bibtex-InBook) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
828 (define-key km "\C-c\C-eb" 'bibtex-Book) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
829 (define-key km "\C-c\C-eB" 'bibtex-Booklet) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
830 (define-key km "\C-c\C-e\C-c" 'bibtex-InCollection) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
831 (define-key km "\C-c\C-e\C-m" 'bibtex-Manual) |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
832 (define-key km "\C-c\C-em" 'bibtex-MastersThesis) |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
833 (define-key km "\C-c\C-eM" 'bibtex-Misc) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
834 (define-key km "\C-c\C-e\C-p" 'bibtex-InProceedings) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
835 (define-key km "\C-c\C-ep" 'bibtex-Proceedings) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
836 (define-key km "\C-c\C-eP" 'bibtex-PhdThesis) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
837 (define-key km "\C-c\C-e\M-p" 'bibtex-Preamble) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
838 (define-key km "\C-c\C-e\C-s" 'bibtex-String) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
839 (define-key km "\C-c\C-e\C-t" 'bibtex-TechReport) |
|
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
840 (define-key km "\C-c\C-e\C-u" 'bibtex-Unpublished) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
841 km) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
842 "Keymap used in BibTeX mode.") |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
843 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
844 (easy-menu-define |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
845 bibtex-edit-menu bibtex-mode-map "BibTeX-Edit Menu in BibTeX mode" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
846 '("BibTeX-Edit" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
847 ("Moving inside an Entry" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
848 ["End of Field" bibtex-find-text t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
849 ["Next Field" bibtex-next-field t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
850 ["Beginning of Entry" bibtex-beginning-of-entry t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
851 ["End of Entry" bibtex-end-of-entry t]) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
852 ("Moving in BibTeX Buffer" |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
853 ["Find Entry" bibtex-find-entry t] |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
854 ["Find Crossref Entry" bibtex-find-crossref t]) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
855 ("Operating on Current Entry" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
856 ["Fill Entry" bibtex-fill-entry t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
857 ["Clean Entry" bibtex-clean-entry t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
858 "--" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
859 ["Kill Entry" bibtex-kill-entry t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
860 ["Copy Entry to Kill Ring" bibtex-copy-entry-as-kill t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
861 ["Paste Most Recently Killed Entry" bibtex-yank t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
862 ["Paste Previously Killed Entry" bibtex-yank-pop t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
863 "--" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
864 ["Ispell Entry" bibtex-ispell-entry t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
865 ["Ispell Entry Abstract" bibtex-ispell-abstract t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
866 ["Narrow to Entry" bibtex-narrow-to-entry t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
867 "--" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
868 ["View Cite Locations (RefTeX)" reftex-view-crossref-from-bibtex |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
869 (fboundp 'reftex-view-crossref-from-bibtex)]) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
870 ("Operating on Current Field" |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
871 ["Fill Field" fill-paragraph t] |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
872 ["Remove Delimiters" bibtex-remove-delimiters t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
873 ["Remove OPT or ALT Prefix" bibtex-remove-OPT-or-ALT t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
874 ["Clear Field" bibtex-empty-field t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
875 "--" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
876 ["Kill Field" bibtex-kill-field t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
877 ["Copy Field to Kill Ring" bibtex-copy-field-as-kill t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
878 ["Paste Most Recently Killed Field" bibtex-yank t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
879 ["Paste Previously Killed Field" bibtex-yank-pop t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
880 "--" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
881 ["Make New Field" bibtex-make-field t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
882 "--" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
883 ["Snatch from Similar Following Field" bibtex-pop-next t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
884 ["Snatch from Similar Preceding Field" bibtex-pop-previous t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
885 "--" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
886 ["String or Key Complete" bibtex-complete t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
887 "--" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
888 ["Help about Current Field" bibtex-print-help-message t]) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
889 ("Operating on Buffer or Region" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
890 ["Validate Entries" bibtex-validate t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
891 ["Sort Entries" bibtex-sort-buffer t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
892 ["Reformat Entries" bibtex-reformat t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
893 ["Count Entries" bibtex-count-entries t]) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
894 ("Miscellaneous" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
895 ["Convert Alien Buffer" bibtex-convert-alien t]))) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
896 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
897 (easy-menu-define |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
898 bibtex-entry-menu bibtex-mode-map "Entry-Types Menu in BibTeX mode" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
899 (list "Entry-Types" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
900 ["Article in Journal" bibtex-Article t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
901 ["Article in Conference Proceedings" bibtex-InProceedings t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
902 ["Article in a Collection" bibtex-InCollection t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
903 ["Chapter or Pages in a Book" bibtex-InBook t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
904 ["Conference Proceedings" bibtex-Proceedings t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
905 ["Book" bibtex-Book t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
906 ["Booklet (Bound, but no Publisher/Institution)" bibtex-Booklet t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
907 ["PhD. Thesis" bibtex-PhdThesis t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
908 ["Master's Thesis" bibtex-MastersThesis t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
909 ["Technical Report" bibtex-TechReport t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
910 ["Technical Manual" bibtex-Manual t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
911 ["Unpublished" bibtex-Unpublished t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
912 ["Miscellaneous" bibtex-Misc t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
913 ["String" bibtex-String t] |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
914 ["Preamble" bibtex-Preamble t])) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
915 |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
916 |
|
12700
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
917 ;; Internal Variables |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
918 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
919 (defvar bibtex-pop-previous-search-point nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
920 "Next point where `bibtex-pop-previous' starts looking for a similar entry.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
921 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
922 (defvar bibtex-pop-next-search-point nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
923 "Next point where `bibtex-pop-next' starts looking for a similar entry.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
924 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
925 (defvar bibtex-field-kill-ring nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
926 "Ring of least recently killed fields. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
927 At most `bibtex-field-kill-ring-max' items are kept here.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
928 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
929 (defvar bibtex-field-kill-ring-yank-pointer nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
930 "The tail of `bibtex-field-kill-ring' whose car is the last item yanked.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
931 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
932 (defvar bibtex-entry-kill-ring nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
933 "Ring of least recently killed entries. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
934 At most `bibtex-entry-kill-ring-max' items are kept here.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
935 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
936 (defvar bibtex-entry-kill-ring-yank-pointer nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
937 "The tail of `bibtex-entry-kill-ring' whose car is the last item yanked.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
938 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
939 (defvar bibtex-last-kill-command nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
940 "Type of the last kill command (either 'field or 'entry).") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
941 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
942 (defvar bibtex-strings |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
943 (lazy-completion-table bibtex-strings |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
944 bibtex-parse-strings (bibtex-string-files-init)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
945 "Completion table for BibTeX string keys. |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
946 Initialized from `bibtex-predefined-strings' and `bibtex-string-files'.") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
947 (make-variable-buffer-local 'bibtex-strings) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
948 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
949 (defvar bibtex-reference-keys |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
950 (lazy-completion-table bibtex-reference-keys bibtex-parse-keys nil nil t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
951 "Completion table for BibTeX reference keys.") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
952 (make-variable-buffer-local 'bibtex-reference-keys) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
953 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
954 (defvar bibtex-buffer-last-parsed-tick nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
955 "Last value returned by `buffer-modified-tick' when buffer |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
956 was parsed for keys the last time.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
957 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
958 (defvar bibtex-parse-idle-timer nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
959 "Stores if timer is already installed.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
960 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
961 (defvar bibtex-progress-lastperc nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
962 "Last reported percentage for the progress message.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
963 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
964 (defvar bibtex-progress-lastmes nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
965 "Last reported progress message.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
966 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
967 (defvar bibtex-progress-interval nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
968 "Interval for progress messages.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
969 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
970 (defvar bibtex-key-history nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
971 "History list for reading keys.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
972 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
973 (defvar bibtex-entry-type-history nil |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
974 "History list for reading entry types.") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
975 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
976 (defvar bibtex-field-history nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
977 "History list for reading field names.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
978 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
979 (defvar bibtex-reformat-previous-options nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
980 "Last reformat options given.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
981 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
982 (defvar bibtex-reformat-previous-reference-keys nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
983 "Last reformat reference keys option given.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
984 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
985 (defconst bibtex-field-name "[^\"#%'(),={} \t\n0-9][^\"#%'(),={} \t\n]*" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
986 "Regexp matching the name part of a BibTeX field.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
987 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
988 (defconst bibtex-entry-type (concat "@" bibtex-field-name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
989 "Regexp matching the type part of a BibTeX entry.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
990 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
991 (defconst bibtex-reference-key "[][a-zA-Z0-9.:;?!`'/*@+|()<>&_^$-]+" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
992 "Regexp matching the reference key part of a BibTeX entry.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
993 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
994 (defconst bibtex-field-const "[][a-zA-Z0-9.:;?!`'/*@+=|<>&_^$-]+" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
995 "Regexp matching a BibTeX field constant.") |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
996 |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
997 (defconst bibtex-entry-head |
|
15637
405b1ecbf8ba
(bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents:
15565
diff
changeset
|
998 (concat "^[ \t]*\\(" |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
999 bibtex-entry-type |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1000 "\\)[ \t]*[({][ \t\n]*\\(" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1001 bibtex-reference-key |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1002 "\\)") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1003 "Regexp matching the header line of a BibTeX entry.") |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1004 |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1005 (defconst bibtex-entry-maybe-empty-head |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1006 (concat bibtex-entry-head "?") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1007 "Regexp matching the header line of a BibTeX entry (possibly without key).") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1008 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1009 (defconst bibtex-type-in-head 1 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1010 "Regexp subexpression number of the type part in `bibtex-entry-head'.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1011 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1012 (defconst bibtex-key-in-head 2 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1013 "Regexp subexpression number of the key part in `bibtex-entry-head'.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1014 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1015 (defconst bibtex-entry-postfix "[ \t\n]*,?[ \t\n]*[})]" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1016 "Regexp matching the postfix of a BibTeX entry.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1017 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1018 (defvar bibtex-known-entry-type-re |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1019 (regexp-opt (mapcar 'car bibtex-entry-field-alist)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1020 "Regexp matching the name of a BibTeX entry type.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1021 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1022 (defvar bibtex-valid-entry-re |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1023 (concat "@[ \t]*\\(" bibtex-known-entry-type-re "\\)") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1024 "Regexp matching the name of a valid BibTeX entry.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1025 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1026 (defvar bibtex-valid-entry-whitespace-re |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1027 (concat "[ \t\n]*\\(" bibtex-valid-entry-re "\\)") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1028 "Regexp matching the name of a valid BibTeX entry preceded by whitespace.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1029 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1030 (defvar bibtex-any-valid-entry-re |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1031 (concat "@[ \t]*" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1032 (regexp-opt (append '("String") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1033 (mapcar 'car bibtex-entry-field-alist)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1034 t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1035 "Regexp matching the name of any valid BibTeX entry (including string).") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1036 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1037 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1038 (defconst bibtex-empty-field-re "\"\"\\|{}" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1039 "Regexp matching an empty field.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1040 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1041 (defconst bibtex-quoted-string-re |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1042 (concat "\"" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1043 "\\(" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1044 "[^\"\\]" ; anything but quote or backslash |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1045 "\\|" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1046 "\\(" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1047 "\\\\\\(.\\|\n\\)" ; any backslash quoted character |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1048 "\\)" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1049 "\\)*" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1050 "\"") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1051 "Regexp matching a field string enclosed by quotes.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1052 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1053 (defconst bibtex-font-lock-syntactic-keywords |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1054 `((,(concat "^[ \t]*\\(" (substring bibtex-comment-start 0 1) "\\)" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1055 (substring bibtex-comment-start 1) "\\>") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1056 1 '(11)))) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1057 |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
1058 (defvar bibtex-font-lock-keywords |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
1059 (list |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1060 ;; entry type and reference key |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1061 (list bibtex-entry-maybe-empty-head |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
1062 (list bibtex-type-in-head 'font-lock-function-name-face) |
|
20953
f3f9df46d008
Changed font-lock-reference-face to font-lock-constant-face.
Simon Marshall <simon@gnu.org>
parents:
20907
diff
changeset
|
1063 (list bibtex-key-in-head 'font-lock-constant-face nil t)) |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
1064 ;; optional field names (treated as comments) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1065 (list |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1066 (concat "^[ \t]*\\(OPT" bibtex-field-name "\\)[ \t]*=") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1067 1 'font-lock-comment-face) |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
1068 ;; field names |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
1069 (list (concat "^[ \t]*\\(" bibtex-field-name "\\)[ \t]*=") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1070 1 'font-lock-variable-name-face)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1071 "*Default expressions to highlight in BibTeX mode.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1072 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1073 (defvar bibtex-field-name-for-parsing nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1074 "Temporary variable storing the name string to be parsed by the callback |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1075 function `bibtex-parse-field-name'.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1076 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1077 (defvar bibtex-sort-entry-class-alist |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1078 (let ((i -1) alist) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1079 (dolist (class bibtex-sort-entry-class alist) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1080 (setq i (1+ i)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1081 (dolist (entry class) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1082 ;; all entry names should be downcase (for ease of comparison) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1083 (push (cons (if (stringp entry) (downcase entry) entry) i) alist)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1084 "Alist for the classes of the entry types if the value of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1085 `bibtex-maintain-sorted-entries' is `entry-class'.") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1086 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1087 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1088 ;; Special support taking care of variants |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1089 (defvar zmacs-regions) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1090 (if (boundp 'mark-active) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1091 (defun bibtex-mark-active () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1092 ;; In Emacs mark-active indicates if mark is active. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1093 mark-active) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1094 (defun bibtex-mark-active () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1095 ;; In XEmacs (mark) returns nil when not active. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1096 (if zmacs-regions (mark) (mark t)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1097 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1098 (if (fboundp 'run-with-idle-timer) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1099 ;; timer.el is distributed with Emacs |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1100 (fset 'bibtex-run-with-idle-timer 'run-with-idle-timer) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1101 ;; timer.el is not distributed with XEmacs |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1102 ;; Notice that this does not (yet) pass the arguments, but they |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1103 ;; are not used (yet) in bibtex.el. Fix if needed. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1104 (defun bibtex-run-with-idle-timer (secs repeat function &rest args) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1105 (start-itimer "bibtex" function secs (if repeat secs nil) t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1106 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1107 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1108 ;; Support for hideshow minor mode |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1109 (defun bibtex-hs-forward-sexp (arg) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1110 "Replacement for `forward-sexp' to be used by `hs-minor-mode'." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1111 (if (< arg 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1112 (backward-sexp 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1113 (if (looking-at "@\\S(*\\s(") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1114 (progn |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1115 (goto-char (match-end 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1116 (forward-char -1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1117 (forward-sexp 1)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1118 (forward-sexp 1)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1119 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1120 (add-to-list |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1121 'hs-special-modes-alist |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1122 '(bibtex-mode "@\\S(*\\s(" "\\s)" nil bibtex-hs-forward-sexp nil)) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1123 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1124 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1125 (defconst bibtex-braced-string-syntax-table |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1126 (let ((st (make-syntax-table))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1127 (modify-syntax-entry ?\{ "(}" st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1128 (modify-syntax-entry ?\} "){" st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1129 (modify-syntax-entry ?\[ "." st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1130 (modify-syntax-entry ?\] "." st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1131 (modify-syntax-entry ?\( "." st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1132 (modify-syntax-entry ?\) "." st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1133 (modify-syntax-entry ?\\ "." st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1134 (modify-syntax-entry ?\" "." st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1135 st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1136 "Syntax-table to parse matched braces.") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1137 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1138 (defconst bibtex-quoted-string-syntax-table |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1139 (let ((st (make-syntax-table))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1140 (modify-syntax-entry ?\\ "\\" st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1141 (modify-syntax-entry ?\" "\"" st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1142 st) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1143 "Syntax-table to parse matched quotes.") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1144 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1145 (defun bibtex-parse-field-string () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1146 "Parse a field string enclosed by braces or quotes. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1147 If a syntactically correct string is found, a pair containing the start and |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1148 end position of the field string is returned, nil otherwise." |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1149 (let ((end-point |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1150 (or (and (eq (following-char) ?\") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1151 (save-excursion |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1152 (with-syntax-table bibtex-quoted-string-syntax-table |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1153 (forward-sexp 1)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1154 (point))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1155 (and (eq (following-char) ?\{) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1156 (save-excursion |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1157 (with-syntax-table bibtex-braced-string-syntax-table |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1158 (forward-sexp 1)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1159 (point)))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1160 (if end-point |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1161 (cons (point) end-point)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1162 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1163 (defun bibtex-parse-association (parse-lhs parse-rhs) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1164 "Parse a string of the format <left-hand-side = right-hand-side>. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1165 The functions PARSE-LHS and PARSE-RHS are used to parse the corresponding |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1166 substrings. These functions are expected to return nil if parsing is not |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1167 successfull. If both functions return non-nil, a pair containing the returned |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1168 values of the functions PARSE-LHS and PARSE-RHS is returned." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1169 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1170 (save-excursion |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1171 (let ((left (funcall parse-lhs)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1172 right) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1173 (if (and left |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1174 (looking-at "[ \t\n]*=[ \t\n]*") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1175 (goto-char (match-end 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1176 (setq right (funcall parse-rhs))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1177 (cons left right)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1178 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1179 (defun bibtex-parse-field-name () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1180 "Parse the field name stored in `bibtex-field-name-for-parsing'. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1181 If the field name is found, return a triple consisting of the position of the |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1182 very first character of the match, the actual starting position of the name |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1183 part and end position of the match. Move point to end of field name. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1184 If `bibtex-autoadd-commas' is non-nil add missing comma at end of preceeding |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1185 BibTeX field as necessary." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1186 (cond ((looking-at ",[ \t\n]*") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1187 (let ((start (point))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1188 (goto-char (match-end 0)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1189 (when (looking-at bibtex-field-name-for-parsing) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1190 (goto-char (match-end 0)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1191 (list start (match-beginning 0) (match-end 0))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1192 ;; Maybe add a missing comma. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1193 ((and bibtex-autoadd-commas |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1194 (looking-at (concat "[ \t\n]*\\(?:" bibtex-field-name-for-parsing |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1195 "\\)[ \t\n]*="))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1196 (skip-chars-backward " \t\n") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1197 (insert ",") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1198 (forward-char -1) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1199 ;; Now try again. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1200 (bibtex-parse-field-name)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1201 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1202 (defun bibtex-parse-field-text () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1203 "Parse the text part of a BibTeX field. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1204 The text part is either a string, or an empty string, or a constant followed |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1205 by one or more <# (string|constant)> pairs. If a syntactically correct text |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1206 is found, a pair containing the start and end position of the text is |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1207 returned, nil otherwise. Move point to end of field text." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1208 (let ((starting-point (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1209 end-point failure boundaries) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1210 (while (not (or end-point failure)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1211 (cond ((looking-at bibtex-field-const) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1212 (goto-char (match-end 0))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1213 ((setq boundaries (bibtex-parse-field-string)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1214 (goto-char (cdr boundaries))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1215 ((setq failure t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1216 (if (not (looking-at "[ \t\n]*#[ \t\n]*")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1217 (setq end-point (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1218 (goto-char (match-end 0)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1219 (if (and (not failure) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1220 end-point) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1221 (cons starting-point end-point)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1222 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1223 (defun bibtex-parse-field (name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1224 "Parse a BibTeX field of regexp NAME. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1225 If a syntactically correct field is found, a pair containing the boundaries of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1226 the name and text parts of the field is returned." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1227 (let ((bibtex-field-name-for-parsing name)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1228 (bibtex-parse-association 'bibtex-parse-field-name |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1229 'bibtex-parse-field-text))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1230 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1231 (defun bibtex-search-forward-field (name &optional bound) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1232 "Search forward to find a field of name NAME. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1233 If a syntactically correct field is found, a pair containing the boundaries of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1234 the name and text parts of the field is returned. The search is limited by |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1235 optional arg BOUND. If BOUND is t the search is limited by the end of the current |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1236 entry. Do not move point." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1237 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1238 (save-excursion |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1239 (unless (integer-or-marker-p bound) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1240 (setq bound (if bound |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1241 (save-excursion (bibtex-end-of-entry)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1242 (point-max)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1243 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1244 (bibtex-field-name-for-parsing name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1245 boundaries temp-boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1246 (while (and (not boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1247 (< (point) bound) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1248 (search-forward "," bound t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1249 (goto-char (match-beginning 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1250 (if (and (setq temp-boundaries |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1251 (bibtex-parse-association 'bibtex-parse-field-name |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1252 'bibtex-parse-field-text)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1253 (<= (cddr temp-boundaries) bound)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1254 (setq boundaries temp-boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1255 (forward-char 1))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1256 boundaries)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1257 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1258 (defun bibtex-search-backward-field (name &optional bound) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1259 "Search backward to find a field of name NAME. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1260 If a syntactically correct field is found, a pair containing the boundaries of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1261 the name and text parts of the field is returned. The search is limited by |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1262 optional arg BOUND. If BOUND is t the search is limited by the beginning of the |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1263 current entry. Do not move point." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1264 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1265 (save-excursion |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1266 (unless (integer-or-marker-p bound) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1267 (setq bound (if bound |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1268 (save-excursion (bibtex-beginning-of-entry)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1269 (point-min)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1270 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1271 (bibtex-field-name-for-parsing name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1272 boundaries temp-boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1273 (while (and (not boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1274 (>= (point) bound) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1275 (search-backward "," bound t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1276 (if (setq temp-boundaries |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1277 (bibtex-parse-association 'bibtex-parse-field-name |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1278 'bibtex-parse-field-text)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1279 (setq boundaries temp-boundaries))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1280 boundaries)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1281 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1282 (defsubst bibtex-start-of-field (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1283 (nth 0 (car bounds))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1284 (defsubst bibtex-start-of-name-in-field (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1285 (nth 1 (car bounds))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1286 (defsubst bibtex-end-of-name-in-field (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1287 (nth 2 (car bounds))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1288 (defsubst bibtex-end-of-field (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1289 (cddr bounds)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1290 (defsubst bibtex-start-of-text-in-field (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1291 (cadr bounds)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1292 (defsubst bibtex-end-of-text-in-field (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1293 (cddr bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1294 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1295 (defun bibtex-name-in-field (bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1296 "Get content of name in BibTeX field defined via BOUNDS." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1297 (buffer-substring-no-properties (nth 1 (car bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1298 (nth 2 (car bounds)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1299 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1300 (defun bibtex-text-in-field-bounds (bounds &optional remove-delim) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1301 "Get content of text in BibTeX field defined via BOUNDS. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1302 If optional arg REMOVE-DELIM is non-nil remove enclosing field delimiters |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1303 if present." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1304 (let ((content (buffer-substring-no-properties (cadr bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1305 (cddr bounds)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1306 (if (and remove-delim |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1307 (string-match "\\`[{\"]\\(.*\\)[}\"]\\'" content)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1308 (substring content (match-beginning 1) (match-end 1)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1309 content))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1310 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1311 (defun bibtex-text-in-field (field &optional follow-crossref) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1312 "Get content of field FIELD of current BibTeX entry. Return nil if not found. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1313 If optional arg FOLLOW-CROSSREF is non-nil, follow crossref." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1314 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1315 (save-restriction |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1316 ;; We want to jump back and forth while searching FIELD |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1317 (bibtex-narrow-to-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1318 (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1319 (let ((bounds (bibtex-search-forward-field field)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1320 crossref-field) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1321 (cond (bounds (bibtex-text-in-field-bounds bounds t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1322 ((and follow-crossref |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1323 (progn (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1324 (setq bounds (bibtex-search-forward-field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1325 "\\(OPT\\)?crossref")))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1326 (setq crossref-field (bibtex-text-in-field-bounds bounds t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1327 (widen) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1328 (if (bibtex-find-crossref crossref-field) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1329 ;; Do not pass FOLLOW-CROSSREF because we want |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1330 ;; to follow crossrefs only one level of recursion. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1331 (bibtex-text-in-field field)))))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1332 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1333 (defun bibtex-parse-string-prefix () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1334 "Parse the prefix part of a BibTeX string entry, including reference key. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1335 If the string prefix is found, return a triple consisting of the position of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1336 the very first character of the match, the actual starting position of the |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1337 reference key and the end position of the match." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1338 (let ((case-fold-search t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1339 (if (looking-at "^[ \t]*@string[ \t\n]*[({][ \t\n]*") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1340 (let ((start (point))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1341 (goto-char (match-end 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1342 (when (looking-at bibtex-reference-key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1343 (goto-char (match-end 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1344 (list start |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1345 (match-beginning 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1346 (match-end 0))))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1347 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1348 (defun bibtex-parse-string-postfix () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1349 "Parse the postfix part of a BibTeX string entry, including the text. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1350 If the string postfix is found, return a triple consisting of the position of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1351 the actual starting and ending position of the text and the very last |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1352 character of the string entry. Move point past BibTeX string entry." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1353 (let* ((case-fold-search t) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1354 (bounds (bibtex-parse-field-text))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1355 (when bounds |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1356 (goto-char (cdr bounds)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1357 (when (looking-at "[ \t\n]*[})]") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1358 (goto-char (match-end 0)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1359 (list (car bounds) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1360 (cdr bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1361 (match-end 0)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1362 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1363 (defun bibtex-parse-string () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1364 "Parse a BibTeX string entry. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1365 If a syntactically correct entry is found, a pair containing the boundaries of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1366 the reference key and text parts of the entry is returned. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1367 Move point past BibTeX string entry." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1368 (bibtex-parse-association 'bibtex-parse-string-prefix |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1369 'bibtex-parse-string-postfix)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1370 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1371 (defun bibtex-search-forward-string () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1372 "Search forward to find a BibTeX string entry. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1373 If a syntactically correct entry is found, a pair containing the boundaries of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1374 the reference key and text parts of the string is returned. Do not move point." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1375 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1376 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1377 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1378 boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1379 (while (and (not boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1380 (search-forward-regexp |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1381 "^[ \t]*@string[ \t\n]*[({][ \t\n]*" nil t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1382 (goto-char (match-beginning 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1383 (unless (setq boundaries (bibtex-parse-string)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1384 (forward-char 1))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1385 boundaries)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1386 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1387 (defun bibtex-search-backward-string () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1388 "Search backward to find a BibTeX string entry. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1389 If a syntactically correct entry is found, a pair containing the boundaries of |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1390 the reference key and text parts of the field is returned. Do not move point." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1391 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1392 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1393 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1394 boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1395 (while (and (not boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1396 (search-backward-regexp |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1397 "^[ \t]*@string[ \t\n]*[({][ \t\n]*" nil t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1398 (goto-char (match-beginning 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1399 (setq boundaries (bibtex-parse-string))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1400 boundaries)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1401 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1402 (defun bibtex-reference-key-in-string (bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1403 (buffer-substring-no-properties (nth 1 (car bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1404 (nth 2 (car bounds)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1405 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1406 (defun bibtex-text-in-string (bounds &optional remove-delim) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1407 "Get content of text in BibTeX string field defined via BOUNDS. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1408 If optional arg REMOVE-DELIM is non-nil remove enclosing field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1409 delimiters if present." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1410 (let ((content (buffer-substring-no-properties (nth 0 (cdr bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1411 (nth 1 (cdr bounds))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1412 (if (and remove-delim |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1413 (string-match "\\`{\\(.*\\)}\\'" content)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1414 (substring content (match-beginning 1) (match-end 1)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1415 content))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1416 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1417 (defsubst bibtex-start-of-text-in-string (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1418 (nth 0 (cdr bounds))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1419 (defsubst bibtex-end-of-text-in-string (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1420 (nth 1 (cdr bounds))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1421 (defsubst bibtex-end-of-string (bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1422 (nth 2 (cdr bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1423 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1424 (defsubst bibtex-type-in-head () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1425 "Extract BibTeX type in head." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1426 ;; ignore @ |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1427 (buffer-substring-no-properties (1+ (match-beginning bibtex-type-in-head)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1428 (match-end bibtex-type-in-head))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1429 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1430 (defun bibtex-key-in-head (&optional empty) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1431 "Extract BibTeX key in head. Return optional arg EMPTY if key is empty." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1432 (if (match-beginning bibtex-key-in-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1433 (buffer-substring-no-properties (match-beginning bibtex-key-in-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1434 (match-end bibtex-key-in-head)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1435 empty)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1436 |
|
12700
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
1437 ;; Helper Functions |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1438 |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
1439 (defun bibtex-delete-whitespace () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1440 "Delete all whitespace starting at point." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1441 (if (looking-at "[ \t\n]+") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1442 (delete-region (point) (match-end 0)))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1443 |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
1444 (defun bibtex-current-line () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1445 "Compute line number of point regardless whether the buffer is narrowed." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1446 (+ (count-lines 1 (point)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1447 (if (equal (current-column) 0) 1 0))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1448 |
|
17700
d28dbbfabfb1
(assoc-ignore-case): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
15852
diff
changeset
|
1449 (defun bibtex-member-of-regexp (string list) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1450 "Return non-nil if STRING is exactly matched by an element of LIST. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1451 The value is actually the tail of LIST whose car matches STRING." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1452 (let (case-fold-search) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1453 (while (and list |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
1454 (not (string-match (concat "\\`\\(?:" (car list) "\\)\\'") string))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1455 (setq list (cdr list))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1456 list)) |
| 257 | 1457 |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
1458 (defun bibtex-assoc-of-regexp (string alist) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1459 "Return non-nil if STRING is exactly matched by the car of an |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1460 element of ALIST (case ignored). The value is actually the element |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1461 of LIST whose car matches STRING." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1462 (let ((case-fold-search t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1463 (while (and alist |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
1464 (not (string-match (concat "\\`\\(?:" (caar alist) "\\)\\'") string))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1465 (setq alist (cdr alist))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1466 (car alist))) |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1467 |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
1468 (defun bibtex-skip-to-valid-entry (&optional backward) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1469 "Unless at beginning of a valid BibTeX entry, move point to beginning of the |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1470 next valid one. With optional argument BACKWARD non-nil, move backward to |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1471 beginning of previous valid one. A valid entry is a syntactical correct one |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1472 with type contained in `bibtex-entry-field-alist' or, if |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1473 `bibtex-sort-ignore-string-entries' is nil, a syntactical correct string |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1474 entry. Return buffer position of beginning and ending of entry if a valid |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1475 entry is found, nil otherwise." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1476 (interactive "P") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1477 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1478 found) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1479 (while (not (or found (if backward (bobp) (eobp)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1480 (let ((pnt (point)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1481 bounds) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1482 (cond ((or (and (looking-at bibtex-valid-entry-re) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1483 (setq found (bibtex-search-entry nil nil t)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1484 (equal (match-beginning 0) pnt)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1485 (and (not bibtex-sort-ignore-string-entries) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1486 (setq bounds (bibtex-parse-string)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1487 (setq found (cons (bibtex-start-of-field bounds) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1488 (bibtex-end-of-string bounds))))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1489 (goto-char pnt)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1490 (backward |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1491 (if (re-search-backward "^[ \t]*\\(@\\)" nil 'move) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1492 (goto-char (match-beginning 1)))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1493 (t (if (re-search-forward "\n[ \t]*@" nil 'move) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1494 (forward-char -1)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1495 found)) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1496 |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
1497 (defun bibtex-map-entries (fun) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1498 "Call FUN for each BibTeX entry starting with the current. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1499 Do this to the end of the file. FUN is called with three arguments, the key of |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1500 the entry and the buffer positions (marker) of beginning and end of entry. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1501 Point is inside the entry. If `bibtex-sort-ignore-string-entries' is non-nil, |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1502 FUN will not be called for @String entries." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1503 (let ((case-fold-search t)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1504 (bibtex-beginning-of-entry) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1505 (while (re-search-forward bibtex-entry-head nil t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1506 (let ((entry-type (bibtex-type-in-head)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1507 (key (bibtex-key-in-head "")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1508 (beg (copy-marker (match-beginning 0))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1509 (end (copy-marker (save-excursion (bibtex-end-of-entry))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1510 (save-excursion |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1511 (if (or (and (not bibtex-sort-ignore-string-entries) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1512 (string-equal "string" (downcase entry-type))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1513 (assoc-ignore-case entry-type bibtex-entry-field-alist)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1514 (funcall fun key beg end))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1515 (goto-char end))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1516 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1517 (defun bibtex-progress-message (&optional flag interval) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1518 "Echo a message about progress of current buffer. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1519 If FLAG is a string, the message is initialized (in this case a |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1520 value for INTERVAL may be given as well (if not this is set to 5)). |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1521 If FLAG is done, the message is deinitialized. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1522 If FLAG is absent, a message is echoed if point was incremented |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1523 at least INTERVAL percent since last message was echoed." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1524 (cond ((stringp flag) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1525 (setq bibtex-progress-lastmes flag) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1526 (setq bibtex-progress-interval (or interval 5) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1527 bibtex-progress-lastperc 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1528 ((equal flag 'done) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1529 (message "%s (done)" bibtex-progress-lastmes) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1530 (setq bibtex-progress-lastmes nil)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1531 (t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1532 (let* ((size (- (point-max) (point-min))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1533 (perc (if (= size 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1534 100 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1535 (/ (* 100 (- (point) (point-min))) size)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1536 (when (>= perc (+ bibtex-progress-lastperc |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1537 bibtex-progress-interval)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1538 (setq bibtex-progress-lastperc perc) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1539 (message "%s (%d%%)" bibtex-progress-lastmes perc)))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1540 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1541 (defun bibtex-field-left-delimiter () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1542 "Return a string dependent on `bibtex-field-delimiters'." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1543 (if (equal bibtex-field-delimiters 'braces) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1544 "{" |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1545 "\"")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1546 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1547 (defun bibtex-field-right-delimiter () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1548 "Return a string dependent on `bibtex-field-delimiters'." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1549 (if (equal bibtex-field-delimiters 'braces) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1550 "}" |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1551 "\"")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1552 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1553 (defun bibtex-entry-left-delimiter () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1554 "Return a string dependent on `bibtex-field-delimiters'." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1555 (if (equal bibtex-entry-delimiters 'braces) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1556 "{" |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1557 "(")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1558 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1559 (defun bibtex-entry-right-delimiter () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1560 "Return a string dependent on `bibtex-field-delimiters'." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1561 (if (equal bibtex-entry-delimiters 'braces) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1562 "}" |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1563 ")")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1564 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1565 (defun bibtex-search-entry (empty-head &optional bound noerror backward) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1566 "Search for a BibTeX entry (maybe without reference key if EMPTY-HEAD is t). |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1567 BOUND and NOERROR are exactly as in `re-search-forward'. If BACKWARD |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1568 is non-nil, search is done in reverse direction. Point is moved past the |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1569 closing delimiter (at the beginning of entry if BACKWARD is non-nil). |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1570 Return a cons pair with buffer positions of beginning and end of entry. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1571 After call to this function MATCH-BEGINNING and MATCH-END functions |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1572 are defined, but only for the head part of the entry |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1573 \(especially (match-end 0) just gives the end of the head part)." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1574 (let ((pnt (point)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1575 (entry-head-re (if empty-head |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1576 bibtex-entry-maybe-empty-head |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1577 bibtex-entry-head))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1578 (if backward |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1579 (let (found) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1580 (while (and (not found) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1581 (re-search-backward entry-head-re bound noerror)) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1582 (setq found (bibtex-search-entry empty-head pnt t))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1583 (if found |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1584 (progn (goto-char (match-beginning 0)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1585 found) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1586 (cond ((equal noerror nil) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1587 ;; yell |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1588 (error "Backward search of BibTeX entry failed")) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1589 ((equal noerror t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1590 ;; don't move |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1591 (goto-char pnt))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1592 nil)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1593 (let ((limit (or bound (point-max))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1594 found) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1595 (while (and (not found) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1596 (re-search-forward entry-head-re bound noerror)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1597 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1598 (let ((entry-closer |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1599 (if (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1600 (goto-char (match-end bibtex-type-in-head)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1601 (looking-at "[ \t]*(")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1602 ;; entry opened with parenthesis |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1603 ?\) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1604 ?\})) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1605 (infix-start (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1606 finished bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1607 (while (not finished) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1608 (skip-chars-forward " \t\n" limit) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1609 (if (and (setq bounds (bibtex-parse-field bibtex-field-name)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1610 (<= (bibtex-end-of-field bounds) limit)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1611 (setq infix-start (bibtex-end-of-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1612 (setq finished t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1613 (goto-char infix-start)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1614 ;; This matches the infix* part. The AND construction assures |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1615 ;; that BOUND is respected. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1616 (when (and (looking-at bibtex-entry-postfix) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1617 (eq (char-before (match-end 0)) entry-closer) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1618 (<= (match-end 0) limit)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1619 (goto-char (match-end 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1620 (setq found t))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1621 (if found |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1622 (cons (match-beginning 0) (point)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1623 (cond ((not noerror) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1624 ;; yell |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1625 (error "Search of BibTeX entry failed")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1626 ((equal noerror t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1627 ;; don't move |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1628 (goto-char pnt))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1629 nil))))) |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1630 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1631 (defun bibtex-flash-head () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1632 "Flash at BibTeX entry head before point, if exists." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1633 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1634 flash) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1635 (cond ((re-search-backward bibtex-entry-head nil t) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1636 (goto-char (match-beginning bibtex-type-in-head)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1637 (setq flash (match-end bibtex-key-in-head))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1638 (t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1639 (end-of-line) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1640 (skip-chars-backward " \t") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1641 (setq flash (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1642 (beginning-of-line) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1643 (skip-chars-forward " \t"))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1644 (if (pos-visible-in-window-p (point)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1645 (sit-for 1) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1646 (message "From: %s" |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1647 (buffer-substring (point) flash))))) |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1648 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1649 (defun bibtex-make-optional-field (field) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1650 "Make an optional field named FIELD in current BibTeX entry." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1651 (if (consp field) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1652 (bibtex-make-field (cons (concat "OPT" (car field)) (cdr field))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1653 (bibtex-make-field (concat "OPT" field)))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1654 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1655 (defun bibtex-move-outside-of-entry () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1656 "Make sure point is outside of a BibTeX entry." |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
1657 (let ((orig-point (point))) |
|
26711
eac840d283b6
(bibtex-hs-forward-sexp): Added to support
Gerd Moellmann <gerd@gnu.org>
parents:
25444
diff
changeset
|
1658 (bibtex-end-of-entry) |
|
52891
a6806242012a
(bibtex-move-outside-of-entry):
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
1659 (when (< (point) orig-point) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1660 ;; We moved backward, so we weren't inside an entry to begin with. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1661 ;; Leave point at the beginning of a line, and preferably |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1662 ;; at the beginning of a paragraph. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1663 (goto-char orig-point) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1664 (beginning-of-line 1) |
|
52891
a6806242012a
(bibtex-move-outside-of-entry):
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
1665 (unless (= ?\n (char-before (1- (point)))) |
|
a6806242012a
(bibtex-move-outside-of-entry):
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
1666 (re-search-forward "^[ \t]*[@\n]" nil 'move) |
|
a6806242012a
(bibtex-move-outside-of-entry):
Richard M. Stallman <rms@gnu.org>
parents:
52401
diff
changeset
|
1667 (backward-char 1))) |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
1668 (skip-chars-forward " \t\n"))) |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1669 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1670 (defun bibtex-beginning-of-first-entry () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1671 "Go to the beginning of the first BibTeX entry in buffer. Return point." |
|
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1672 (goto-char (point-min)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1673 (if (re-search-forward "^[ \t]*@" nil 'move) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1674 (beginning-of-line)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1675 (point)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1676 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1677 (defun bibtex-beginning-of-last-entry () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1678 "Go to the beginning of the last BibTeX entry in buffer." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1679 (goto-char (point-max)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1680 (if (re-search-backward "^[ \t]*@" nil 'move) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1681 (beginning-of-line)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1682 (point)) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1683 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1684 (defun bibtex-inside-field () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1685 "Try to avoid point being at end of a BibTeX field." |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1686 (end-of-line) |
|
13728
4b7903cfa7ee
(bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents:
12770
diff
changeset
|
1687 (skip-chars-backward " \t") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1688 (cond ((= (preceding-char) ?,) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1689 (forward-char -2))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1690 (cond ((or (= (preceding-char) ?}) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1691 (= (preceding-char) ?\")) |
|
13728
4b7903cfa7ee
(bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents:
12770
diff
changeset
|
1692 (forward-char -1)))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1693 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1694 (defun bibtex-enclosing-field (&optional noerr) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1695 "Search for BibTeX field enclosing point. Point moves to end of field. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1696 Use `match-beginning' and `match-end' to parse the field. If NOERR is non-nil, |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1697 no error is signalled. In this case, bounds are returned on success, |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1698 nil otherwise." |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1699 (let ((bounds (bibtex-search-backward-field bibtex-field-name t))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1700 (if (and bounds |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1701 (<= (bibtex-start-of-field bounds) (point)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1702 (>= (bibtex-end-of-field bounds) (point))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1703 bounds |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1704 (unless noerr |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1705 (error "Can't find enclosing BibTeX field"))))) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1706 |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1707 (defun bibtex-enclosing-entry-maybe-empty-head () |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1708 "Search for BibTeX entry enclosing point. Move point to end of entry. |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1709 Beginning (but not end) of entry is given by (`match-beginning' 0)." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1710 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1711 (old-point (point))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1712 (unless (re-search-backward bibtex-entry-maybe-empty-head nil t) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1713 (goto-char old-point) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1714 (error "Can't find beginning of enclosing BibTeX entry")) |
|
13728
4b7903cfa7ee
(bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents:
12770
diff
changeset
|
1715 (goto-char (match-beginning bibtex-type-in-head)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1716 (unless (bibtex-search-entry t nil t) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1717 (goto-char old-point) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1718 (error "Can't find end of enclosing BibTeX entry")))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1719 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1720 (defun bibtex-insert-current-kill (n) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1721 (if (not bibtex-last-kill-command) |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
1722 (error "BibTeX kill ring is empty") |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1723 (let* ((kr (if (equal bibtex-last-kill-command 'field) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1724 'bibtex-field-kill-ring |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1725 'bibtex-entry-kill-ring)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1726 (kryp (if (equal bibtex-last-kill-command 'field) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1727 'bibtex-field-kill-ring-yank-pointer |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1728 'bibtex-entry-kill-ring-yank-pointer)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1729 (ARGth-kill-element (nthcdr (mod (- n (length (eval kryp))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1730 (length (eval kr))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1731 (eval kr))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1732 (current (car (set kryp ARGth-kill-element)))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1733 (cond |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1734 ((equal bibtex-last-kill-command 'field) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1735 (let (bibtex-help-message) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1736 (bibtex-find-text nil t) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1737 (if (looking-at "[}\"]") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1738 (forward-char))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1739 (set-mark (point)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1740 (message "Mark set") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1741 (bibtex-make-field (list (elt current 1) nil (elt current 2)) t)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1742 ((equal bibtex-last-kill-command 'entry) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1743 (if (not (eobp)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1744 (bibtex-beginning-of-entry)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1745 (set-mark (point)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1746 (message "Mark set") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1747 (insert (elt current 1))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1748 (t |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1749 (error "Unknown tag field: %s. Please submit a bug report" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1750 bibtex-last-kill-command)))))) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
1751 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1752 (defun bibtex-format-entry () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1753 "Helper function for `bibtex-clean-entry'. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1754 Formats current entry according to variable `bibtex-entry-format'." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1755 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1756 (save-restriction |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1757 (bibtex-narrow-to-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1758 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1759 (format (if (equal bibtex-entry-format t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1760 '(realign opts-or-alts required-fields |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1761 numerical-fields |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1762 last-comma page-dashes delimiters |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1763 unify-case inherit-booktitle) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1764 bibtex-entry-format)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1765 crossref-key bounds alternatives-there non-empty-alternative |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1766 entry-list req creq field-done field-list) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1767 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1768 ;; identify entry type |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1769 (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1770 (re-search-forward bibtex-entry-type) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1771 (let ((beg-type (1+ (match-beginning 0))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1772 (end-type (match-end 0))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1773 (setq entry-list (assoc-ignore-case (buffer-substring-no-properties |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1774 beg-type end-type) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1775 bibtex-entry-field-alist) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1776 req (nth 0 (nth 1 entry-list)) ; required part |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1777 creq (nth 0 (nth 2 entry-list))) ; crossref part |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1778 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1779 ;; unify case of entry name |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1780 (when (memq 'unify-case format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1781 (delete-region beg-type end-type) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1782 (insert (car entry-list))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1783 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1784 ;; update left entry delimiter |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1785 (when (memq 'delimiters format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1786 (goto-char end-type) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1787 (skip-chars-forward " \t\n") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1788 (delete-char 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1789 (insert (bibtex-entry-left-delimiter)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1790 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1791 ;; determine if entry has crossref field and if at least |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1792 ;; one alternative is non-empty |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1793 (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1794 (while (setq bounds (bibtex-search-forward-field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1795 bibtex-field-name)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1796 (goto-char (bibtex-start-of-name-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1797 (cond ((looking-at "ALT") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1798 (setq alternatives-there t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1799 (goto-char (bibtex-start-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1800 (if (not (looking-at bibtex-empty-field-re)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1801 (setq non-empty-alternative t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1802 ((and (looking-at "\\(OPT\\)?crossref\\>") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1803 (progn (goto-char (bibtex-start-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1804 (not (looking-at bibtex-empty-field-re)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1805 (setq crossref-key |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1806 (bibtex-text-in-field-bounds bounds t)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1807 (goto-char (bibtex-end-of-field bounds))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1808 (if (and alternatives-there |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1809 (not non-empty-alternative) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1810 (memq 'required-fields format)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1811 (error "All alternatives are empty")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1812 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1813 ;; process all fields |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1814 (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1815 (while (setq bounds (bibtex-search-forward-field bibtex-field-name)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1816 (let* ((beg-field (copy-marker (bibtex-start-of-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1817 (end-field (copy-marker (bibtex-end-of-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1818 (beg-name (copy-marker (bibtex-start-of-name-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1819 (end-name (copy-marker (bibtex-end-of-name-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1820 (beg-text (copy-marker (bibtex-start-of-text-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1821 (end-text (copy-marker (bibtex-end-of-text-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1822 (opt-alt (string-match "OPT\\|ALT" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1823 (buffer-substring-no-properties beg-name (+ beg-name 3)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1824 (field-name (buffer-substring-no-properties |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1825 (if opt-alt (+ beg-name 3) beg-name) end-name)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1826 (empty-field (string-match bibtex-empty-field-re |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1827 (buffer-substring-no-properties beg-field end-field))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1828 deleted) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1829 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1830 ;; We have more elegant high-level functions for several |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1831 ;; tasks done by bibtex-format-entry. However, they contain |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1832 ;; quite some redundancy compared with what we need to do |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1833 ;; anyway. So for speed-up we avoid using them. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1834 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1835 (when (and opt-alt |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1836 (memq 'opts-or-alts format)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1837 (if empty-field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1838 ;; Either it is an empty ALT field. Then we have checked |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1839 ;; already that we have one non-empty alternative. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1840 ;; Or it is an empty OPT field that we do not miss anyway. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1841 ;; So we can safely delete this field. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1842 (progn (delete-region beg-field end-field) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1843 (setq deleted t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1844 ;; otherwise: not empty, delete "OPT" or "ALT" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1845 (goto-char beg-name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1846 (delete-char 3))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1847 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1848 (unless deleted |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1849 (push field-name field-list) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1850 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1851 ;; remove delimiters from purely numerical fields |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1852 (when (and (memq 'numerical-fields format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1853 (progn (goto-char beg-text) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1854 (looking-at "\\(\"[0-9]+\"\\)\\|\\({[0-9]+}\\)"))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1855 (goto-char end-text) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1856 (delete-char -1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1857 (goto-char beg-text) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1858 (delete-char 1)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1859 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1860 ;; update delimiters |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1861 (when (memq 'delimiters format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1862 (goto-char beg-text) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1863 (when (looking-at "[{\"]") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1864 (delete-char 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1865 (insert (bibtex-field-left-delimiter))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1866 (goto-char (1- (marker-position end-text))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1867 (when (looking-at "[}\"]") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1868 (delete-char 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1869 (insert (bibtex-field-right-delimiter)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1870 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1871 ;; update page dashes |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1872 (if (and (memq 'page-dashes format) |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
1873 (string-match "\\`\\(OPT\\)?pages\\'" field-name) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1874 (progn (goto-char beg-text) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1875 (looking-at |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1876 "\\([\"{][0-9]+\\)[ \t\n]*--?[ \t\n]*\\([0-9]+[\"}]\\)"))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1877 (replace-match "\\1-\\2")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1878 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1879 ;; use book title of crossref'd entry |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1880 (if (and (memq 'inherit-booktitle format) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1881 empty-field |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1882 (equal (downcase field-name) "booktitle") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1883 crossref-key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1884 (let ((title (save-restriction |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1885 (widen) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1886 (if (bibtex-find-entry crossref-key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1887 (bibtex-text-in-field "title"))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1888 (when title |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1889 (setq empty-field nil) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1890 (goto-char (1+ beg-text)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1891 (insert title)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1892 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1893 ;; Use booktitle to set a missing title. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1894 (if (and empty-field |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1895 (equal (downcase field-name) "title")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1896 (let ((booktitle (bibtex-text-in-field "booktitle"))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1897 (when booktitle |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1898 (setq empty-field nil) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1899 (goto-char (1+ beg-text)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
1900 (insert booktitle)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1901 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1902 ;; if empty field, complain |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1903 (if (and empty-field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1904 (memq 'required-fields format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1905 (assoc-ignore-case field-name |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1906 (if crossref-key creq req))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1907 (error "Mandatory field `%s' is empty" field-name)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1908 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1909 ;; unify case of field name |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1910 (if (memq 'unify-case format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1911 (let ((fname (car (assoc-ignore-case |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1912 field-name (append (nth 0 (nth 1 entry-list)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1913 (nth 1 (nth 1 entry-list)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1914 bibtex-user-optional-fields))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1915 (if fname |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1916 (progn |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1917 (delete-region beg-name end-name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1918 (goto-char beg-name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1919 (insert fname)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1920 ;; there are no rules we could follow |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1921 (downcase-region beg-name end-name)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1922 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1923 ;; update point |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1924 (goto-char end-field)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1925 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1926 ;; check whether all required fields are present |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1927 (if (memq 'required-fields format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1928 (let (altlist (found 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1929 (dolist (fname (if crossref-key creq req)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1930 (if (nth 3 fname) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1931 (push (car fname) altlist)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1932 (unless (or (member (car fname) field-list) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1933 (nth 3 fname)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1934 (error "Mandatory field `%s' is missing" (car fname)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1935 (when altlist |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1936 (dolist (fname altlist) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1937 (if (member fname field-list) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1938 (setq found (1+ found)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1939 (cond ((= found 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1940 (error "Alternative mandatory field `%s' is missing" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1941 altlist)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1942 ((> found 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1943 (error "Alternative fields `%s' is defined %s times" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1944 altlist found)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1945 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1946 ;; update point |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1947 (if (looking-at (bibtex-field-right-delimiter)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1948 (forward-char)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1949 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1950 ;; update comma after last field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1951 (if (memq 'last-comma format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1952 (cond ((and bibtex-comma-after-last-field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1953 (not (looking-at ","))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1954 (insert ",")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1955 ((and (not bibtex-comma-after-last-field) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1956 (looking-at ",")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1957 (delete-char 1)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1958 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1959 ;; update right entry delimiter |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1960 (if (looking-at ",") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1961 (forward-char)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1962 (when (memq 'delimiters format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1963 (skip-chars-forward " \t\n") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1964 (delete-char 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1965 (insert (bibtex-entry-right-delimiter))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1966 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1967 ;; fill entry |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1968 (if (memq 'realign format) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1969 (bibtex-fill-entry)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1970 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1971 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1972 (defun bibtex-autokey-abbrev (string len) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1973 "Return an abbreviation of STRING with at least LEN characters. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1974 If LEN is positive the abbreviation is terminated only after a consonant |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1975 or at the word end. If LEN is negative the abbreviation is strictly |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1976 enforced using abs (LEN) characters. If LEN is not a number, STRING |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1977 is returned unchanged." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1978 (cond ((or (not (numberp len)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1979 (<= (length string) (abs len))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1980 string) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1981 ((equal len 0) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
1982 "") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1983 ((< len 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1984 (substring string 0 (abs len))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1985 (t (let* ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1986 (abort-char (string-match "[^aeiou]" string (1- len)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1987 (if abort-char |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1988 (substring string 0 (1+ abort-char)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1989 string))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1990 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1991 (defun bibtex-autokey-get-field (field &optional change-list) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1992 "Get content of BibTeX field FIELD. Return empty string if not found. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1993 Optional arg CHANGE-LIST is a list of substitution patterns that is |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1994 applied to the content of FIELD. It is an alist with pairs |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1995 \(OLD-REGEXP . NEW-STRING\)." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1996 (let ((content (bibtex-text-in-field field bibtex-autokey-use-crossref)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1997 case-fold-search) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1998 (unless content (setq content "")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
1999 (dolist (pattern change-list content) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2000 (setq content (replace-regexp-in-string (car pattern) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2001 (cdr pattern) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2002 content))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2003 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2004 (defun bibtex-autokey-get-names () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2005 "Get contents of the name field of the current entry. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2006 Do some modifications based on `bibtex-autokey-name-change-strings' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2007 and return results as a list." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2008 (let ((case-fold-search t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2009 (mapcar 'bibtex-autokey-demangle-name |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2010 (split-string (bibtex-autokey-get-field |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2011 "author\\|editor" |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2012 bibtex-autokey-name-change-strings) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2013 "[ \t\n]+and[ \t\n]+")))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2014 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2015 (defun bibtex-autokey-demangle-name (fullname) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2016 "Get the last part from a well-formed name and perform abbreviations." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2017 (let* (case-fold-search |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2018 (name (cond ((string-match "\\([A-Z][^, ]*\\)[^,]*," fullname) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2019 ;; Name is of the form "von Last, First" or |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2020 ;; "von Last, Jr, First" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2021 ;; --> Take the first capital part before the comma |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
2022 (match-string 1 fullname)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2023 ((string-match "\\([^, ]*\\)," fullname) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2024 ;; Strange name: we have a comma, but nothing capital |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2025 ;; So we accept even lowercase names |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
2026 (match-string 1 fullname)) |
|
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
2027 ((string-match "\\(\\<[a-z][^ ]* +\\)+\\([A-Z][^ ]*\\)" |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2028 fullname) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2029 ;; name is of the form "First von Last", "von Last", |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2030 ;; "First von von Last", or "d'Last" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2031 ;; --> take the first capital part after the "von" parts |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
2032 (match-string 2 fullname)) |
|
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
2033 ((string-match "\\([^ ]+\\) *\\'" fullname) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2034 ;; name is of the form "First Middle Last" or "Last" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2035 ;; --> take the last token |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
2036 (match-string 1 fullname)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2037 (t (error "Name `%s' is incorrectly formed" fullname))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2038 (bibtex-autokey-abbrev |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2039 (funcall bibtex-autokey-name-case-convert name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2040 bibtex-autokey-name-length))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2041 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2042 (defun bibtex-autokey-get-title () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2043 "Get title field contents up to a terminator." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2044 (let ((titlestring |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2045 (bibtex-autokey-get-field "title" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2046 bibtex-autokey-titleword-change-strings))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2047 ;; ignore everything past a terminator |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2048 (let ((case-fold-search t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2049 (dolist (terminator bibtex-autokey-title-terminators) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2050 (if (string-match terminator titlestring) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2051 (setq titlestring (substring titlestring 0 (match-beginning 0)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2052 ;; gather words from titlestring into a list. Ignore |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2053 ;; specific words and use only a specific amount of words. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2054 (let (case-fold-search titlewords titlewords-extra titleword end-match |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2055 (counter 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2056 (while (and (or (not (numberp bibtex-autokey-titlewords)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2057 (< counter (+ bibtex-autokey-titlewords |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2058 bibtex-autokey-titlewords-stretch))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2059 (string-match "\\b\\w+" titlestring)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2060 (setq end-match (match-end 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2061 titleword (substring titlestring |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2062 (match-beginning 0) end-match)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2063 (unless (bibtex-member-of-regexp titleword |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2064 bibtex-autokey-titleword-ignore) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2065 (setq titleword |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2066 (funcall bibtex-autokey-titleword-case-convert titleword)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2067 (if (or (not (numberp bibtex-autokey-titlewords)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2068 (< counter bibtex-autokey-titlewords)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2069 (setq titlewords (append titlewords (list titleword))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2070 (setq titlewords-extra |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2071 (append titlewords-extra (list titleword)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2072 (setq counter (1+ counter))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2073 (setq titlestring (substring titlestring end-match))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2074 (unless (string-match "\\b\\w+" titlestring) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2075 (setq titlewords (append titlewords titlewords-extra))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2076 (mapcar 'bibtex-autokey-demangle-title titlewords)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2077 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2078 (defun bibtex-autokey-demangle-title (titleword) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2079 "Do some abbreviations on TITLEWORD. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2080 The rules are defined in `bibtex-autokey-titleword-abbrevs' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2081 and `bibtex-autokey-titleword-length'." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2082 (let ((abbrev (bibtex-assoc-of-regexp |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2083 titleword bibtex-autokey-titleword-abbrevs))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2084 (if abbrev |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2085 (cdr abbrev) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2086 (bibtex-autokey-abbrev titleword |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2087 bibtex-autokey-titleword-length)))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2088 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2089 (defun bibtex-generate-autokey () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2090 "Generate automatically a key from the author/editor and the title field. |
|
20446
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2091 This will only work for entries where each field begins on a separate line. |
|
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2092 The generation algorithm works as follows: |
|
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2093 1. Use the value of `bibtex-autokey-prefix-string' as a prefix. |
|
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2094 2. If there is a non-empty author (preferred) or editor field, |
|
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2095 use it as the name part of the key. |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2096 3. Change any substring found in |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2097 `bibtex-autokey-name-change-strings' to the corresponding new |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2098 one (see documentation of this variable for further detail). |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2099 4. For every of at least first `bibtex-autokey-names' names in |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2100 the name field, determine the last name. If there are maximal |
|
20446
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2101 `bibtex-autokey-names' + `bibtex-autokey-names-stretch' |
|
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2102 names, all names are used. |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2103 5. From every last name, take at least `bibtex-autokey-name-length' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2104 characters (abort only after a consonant or at a word end). |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2105 6. Convert all last names according to the conversion function |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2106 `bibtex-autokey-name-case-convert'. |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2107 7. Build the name part of the key by concatenating all |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2108 abbreviated last names with the string |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2109 `bibtex-autokey-name-separator' between any two. If there are |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2110 more names than are used in the name part, prepend the string |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2111 contained in `bibtex-autokey-additional-names'. |
|
20446
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2112 8. Build the year part of the key by truncating the contents of |
|
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2113 the year field to the rightmost `bibtex-autokey-year-length' |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2114 digits (useful values are 2 and 4). If the year field (or any |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2115 other field required to generate the key) is absent, but the entry |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2116 has a valid crossref field and the variable |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2117 `bibtex-autokey-use-crossref' is non-nil, use the field of the |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2118 crossreferenced entry instead. |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2119 9. For the title part of the key change the contents of the |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
2120 title field of the entry according to |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2121 `bibtex-autokey-titleword-change-strings' to the |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2122 corresponding new one (see documentation of this variable for |
|
20446
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2123 further detail). |
|
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2124 10. Abbreviate the result to the string up to (but not including) |
|
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2125 the first occurrence of a regexp matched by the items of |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2126 `bibtex-autokey-title-terminators' and delete those words which |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2127 appear in `bibtex-autokey-titleword-ignore'. |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2128 Build the title part of the key by using at least the first |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2129 `bibtex-autokey-titlewords' words from this |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2130 abbreviated title. If the abbreviated title ends after |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2131 maximal `bibtex-autokey-titlewords' + |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2132 `bibtex-autokey-titlewords-stretch' words, all |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2133 words from the abbreviated title are used. |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2134 11. Convert all used titlewords according to the conversion function |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2135 `bibtex-autokey-titleword-case-convert'. |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2136 12. For every used title word that appears in |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2137 `bibtex-autokey-titleword-abbrevs' use the corresponding |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2138 abbreviation (see documentation of this variable for further |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2139 detail). |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2140 13. From every title word not generated by an abbreviation, take |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2141 at least `bibtex-autokey-titleword-length' characters (abort |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2142 only after a consonant or at a word end). |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2143 14. Build the title part of the key by concatenating all |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2144 abbreviated title words with the string |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2145 `bibtex-autokey-titleword-separator' between any two. |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2146 15. At least, to get the key, concatenate |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2147 `bibtex-autokey-prefix-string', the name part, the year part |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2148 and the title part with `bibtex-autokey-name-year-separator' |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2149 between the name part and the year part if both are non-empty |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2150 and `bibtex-autokey-year-title-separator' between the year |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2151 part and the title part if both are non-empty. If the year |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2152 part is empty, but not the other two parts, |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2153 `bibtex-autokey-year-title-separator' is used as well. |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2154 16. If the value of `bibtex-autokey-before-presentation-function' |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2155 is non-nil, it must be a function taking one argument. This |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2156 function is then called with the generated key as the |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2157 argument. The return value of this function (a string) is |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2158 used as the key. |
|
20446
4bcd559e2cb4
(bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents:
20359
diff
changeset
|
2159 17. If the value of `bibtex-autokey-edit-before-use' is non-nil, |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2160 the key is then presented in the minibuffer to the user, |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2161 where it can be edited. The key given by the user is then |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2162 used." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2163 (let* ((name-etal "") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2164 (namelist |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2165 (let ((nl (bibtex-autokey-get-names)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2166 nnl) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2167 (if (or (not (numberp bibtex-autokey-names)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2168 (<= (length nl) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2169 (+ bibtex-autokey-names |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2170 bibtex-autokey-names-stretch))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2171 nl |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2172 (setq name-etal bibtex-autokey-additional-names) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2173 (while (< (length nnl) bibtex-autokey-names) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2174 (setq nnl (append nnl (list (car nl))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2175 nl (cdr nl))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2176 nnl))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2177 (namepart (concat (mapconcat 'identity |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2178 namelist |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2179 bibtex-autokey-name-separator) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2180 name-etal)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2181 (yearfield (bibtex-autokey-get-field "year")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2182 (yearpart (if (equal yearfield "") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2183 "" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2184 (substring yearfield |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2185 (- (length yearfield) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2186 bibtex-autokey-year-length)))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2187 (titlepart (mapconcat 'identity |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2188 (bibtex-autokey-get-title) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2189 bibtex-autokey-titleword-separator)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2190 (autokey (concat bibtex-autokey-prefix-string |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2191 namepart |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2192 (unless (or (equal namepart "") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2193 (equal yearpart "")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2194 bibtex-autokey-name-year-separator) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2195 yearpart |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2196 (unless (or (and (equal namepart "") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2197 (equal yearpart "")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2198 (equal titlepart "")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2199 bibtex-autokey-year-title-separator) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2200 titlepart))) |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2201 (if bibtex-autokey-before-presentation-function |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2202 (funcall bibtex-autokey-before-presentation-function autokey) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2203 autokey))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2204 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2205 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2206 (defun bibtex-parse-keys (&optional add abortable verbose) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2207 "Set `bibtex-reference-keys' to the keys used in the whole buffer. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2208 The buffer might possibly be restricted. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2209 Find both entry keys and crossref entries. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2210 If ADD is non-nil add the new keys to `bibtex-reference-keys' instead of |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2211 simply resetting it. If ADD is an alist of keys, also add ADD to |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2212 `bibtex-reference-keys'. If ABORTABLE is non-nil abort on user |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2213 input. If VERBOSE is non-nil gives messages about progress. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2214 Return alist of keys if parsing was completed, `aborted' otherwise." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2215 (let ((reference-keys (if (and add |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2216 (listp bibtex-reference-keys)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2217 bibtex-reference-keys))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2218 (if (listp add) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2219 (dolist (key add) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2220 (unless (assoc (car key) reference-keys) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2221 (push key reference-keys)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2222 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2223 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2224 (if verbose |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2225 (bibtex-progress-message |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2226 (concat (buffer-name) ": parsing reference keys"))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2227 (catch 'userkey |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2228 (goto-char (point-min)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2229 (if bibtex-parse-keys-fast |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2230 (let ((case-fold-search t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2231 (re (concat bibtex-entry-head "\\|" |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2232 ",[ \t\n]*crossref[ \t\n]*=[ \t\n]*" |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2233 "\\(\"[^\"]*\"\\|{[^}]*}\\)[ \t\n]*[,})]"))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2234 (while (re-search-forward re nil t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2235 (if (and abortable (input-pending-p)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2236 ;; user has aborted by typing a key --> return `aborted' |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2237 (throw 'userkey 'aborted)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2238 (let ((key (cond ((match-end 3) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2239 ;; This is a crossref. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2240 (buffer-substring-no-properties |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2241 (1+ (match-beginning 3)) (1- (match-end 3)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2242 ((assoc-ignore-case (bibtex-type-in-head) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2243 bibtex-entry-field-alist) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2244 ;; This is an entry. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2245 (match-string-no-properties bibtex-key-in-head))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2246 (if (and (stringp key) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2247 (not (assoc key reference-keys))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2248 (push (list key) reference-keys))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2249 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2250 (let (;; ignore @String entries because they are handled |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2251 ;; separately by bibtex-parse-strings |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2252 (bibtex-sort-ignore-string-entries t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2253 crossref-key bounds) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2254 (bibtex-map-entries |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2255 (lambda (key beg end) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2256 (if (and abortable |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2257 (input-pending-p)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2258 ;; user has aborted by typing a key --> return `aborted' |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2259 (throw 'userkey 'aborted)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2260 (if verbose (bibtex-progress-message)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2261 (unless (assoc key reference-keys) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2262 (push (list key) reference-keys)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2263 (if (and (setq bounds (bibtex-search-forward-field "crossref" end)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2264 (setq crossref-key (bibtex-text-in-field-bounds bounds t)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2265 (not (assoc crossref-key reference-keys))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2266 (push (list crossref-key) reference-keys)))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2267 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2268 (if verbose |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2269 (bibtex-progress-message 'done)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2270 ;; successful operation --> return `bibtex-reference-keys' |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2271 (setq bibtex-reference-keys reference-keys)))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2272 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2273 (defun bibtex-parse-strings (&optional add abortable) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2274 "Set `bibtex-strings' to the string definitions in the whole buffer. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2275 The buffer might possibly be restricted. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2276 If ADD is non-nil add the new strings to `bibtex-strings' instead of |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2277 simply resetting it. If ADD is an alist of strings, also add ADD to |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2278 `bibtex-strings'. If ABORTABLE is non-nil abort on user input. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2279 Return alist of strings if parsing was completed, `aborted' otherwise." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2280 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2281 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2282 (goto-char (point-min)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2283 (let ((strings (if (and add |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2284 (listp bibtex-strings)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2285 bibtex-strings)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2286 bounds key) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2287 (if (listp add) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2288 (dolist (string add) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2289 (unless (assoc (car string) strings) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2290 (push string strings)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2291 (catch 'userkey |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2292 (while (setq bounds (bibtex-search-forward-string)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2293 (if (and abortable |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2294 (input-pending-p)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2295 ;; user has aborted by typing a key --> return `aborted' |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2296 (throw 'userkey 'aborted)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2297 (setq key (bibtex-reference-key-in-string bounds)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2298 (if (not (assoc-ignore-case key strings)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2299 (push (cons key (bibtex-text-in-string bounds t)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2300 strings)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2301 (goto-char (bibtex-end-of-text-in-string bounds))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2302 ;; successful operation --> return `bibtex-strings' |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2303 (setq bibtex-strings strings)))))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2304 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2305 (defun bibtex-string-files-init () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2306 "Return initialization for `bibtex-strings'. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2307 Use `bibtex-predefined-strings' and bib files `bibtex-string-files'." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2308 (save-match-data |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2309 ;; collect pathnames |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2310 (let ((dirlist (split-string (or bibtex-string-file-path ".") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2311 ":+")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2312 (case-fold-search) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2313 compl) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2314 (dolist (filename bibtex-string-files) |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
2315 (unless (string-match "\\.bib\\'" filename) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2316 (setq filename (concat filename ".bib"))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2317 ;; test filenames |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2318 (let (fullfilename bounds found) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2319 (dolist (dir dirlist) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2320 (when (file-readable-p |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2321 (setq fullfilename (expand-file-name filename dir))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2322 ;; file was found |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2323 (with-temp-buffer |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2324 (insert-file-contents fullfilename) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2325 (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2326 (while (setq bounds (bibtex-search-forward-string)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2327 (push (cons (bibtex-reference-key-in-string bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2328 (bibtex-text-in-string bounds t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2329 compl) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2330 (goto-char (bibtex-end-of-string bounds)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2331 (setq found t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2332 (unless found |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2333 (error "File %s not in paths defined via bibtex-string-file-path" |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2334 filename)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2335 (append bibtex-predefined-strings (nreverse compl))))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2336 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2337 (defun bibtex-parse-buffers-stealthily () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2338 "Called by `bibtex-run-with-idle-timer'. Whenever emacs has been idle |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2339 for `bibtex-parse-keys-timeout' seconds, all BibTeX buffers (starting |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2340 with the current) are parsed." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2341 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2342 (let ((buffers (buffer-list)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2343 (strings-init (bibtex-string-files-init))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2344 (while (and buffers (not (input-pending-p))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2345 (set-buffer (car buffers)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2346 (if (and (eq major-mode 'bibtex-mode) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2347 (not (eq (buffer-modified-tick) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2348 bibtex-buffer-last-parsed-tick))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2349 (save-restriction |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2350 (widen) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2351 ;; Output no progress messages in bibtex-parse-keys |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2352 ;; because when in y-or-n-p that can hide the question. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2353 (if (and (listp (bibtex-parse-keys nil t)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2354 ;; update bibtex-strings |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2355 (listp (bibtex-parse-strings strings-init t))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2356 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2357 ;; remember that parsing was successful |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2358 (setq bibtex-buffer-last-parsed-tick (buffer-modified-tick))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2359 (setq buffers (cdr buffers)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2360 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2361 (defun bibtex-complete-internal (completions) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2362 "Complete word fragment before point to longest prefix of one |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2363 string defined in list COMPLETIONS. If point is not after the part |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2364 of a word, all strings are listed. Return completion." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2365 (let* ((case-fold-search t) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2366 (beg (save-excursion |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2367 (re-search-backward "[ \t{\"]") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2368 (forward-char) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2369 (point))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2370 (end (point)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2371 (part-of-word (buffer-substring-no-properties beg end)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2372 (completion (try-completion part-of-word completions))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2373 (cond ((not completion) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2374 (error "Can't find completion for `%s'" part-of-word)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2375 ((eq completion t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2376 part-of-word) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2377 ((not (string= part-of-word completion)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2378 (delete-region beg end) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2379 (insert completion) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2380 completion) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2381 (t |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2382 (message "Making completion list...") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2383 (with-output-to-temp-buffer "*Completions*" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2384 (display-completion-list (all-completions part-of-word |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2385 completions))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2386 (message "Making completion list...done") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2387 nil)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2388 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2389 (defun bibtex-complete-string-cleanup (str) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2390 "Cleanup after inserting string STR. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2391 Remove enclosing field delimiters for string STR. Display message with |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2392 expansion of STR." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2393 (let ((pair (assoc str bibtex-strings))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2394 (when pair |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2395 (if (cdr pair) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2396 (message "Abbreviation for `%s'" (cdr pair))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2397 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2398 (bibtex-inside-field) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2399 (let ((bounds (bibtex-enclosing-field))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2400 (goto-char (bibtex-start-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2401 (let ((boundaries (bibtex-parse-field-string))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2402 (if (and boundaries |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2403 (equal (cdr boundaries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2404 (bibtex-end-of-text-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2405 (bibtex-remove-delimiters)))))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2406 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2407 (defun bibtex-choose-completion-string (choice buffer mini-p base-size) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2408 ;; Code borrowed from choose-completion-string: |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2409 ;; We must duplicate the code from choose-completion-string |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2410 ;; because it runs the hook choose-completion-string-functions |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2411 ;; before it inserts the completion. But we want to do something |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2412 ;; after the completion has been inserted. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2413 ;; |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2414 ;; Insert the completion into the buffer where it was requested. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2415 (set-buffer buffer) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2416 (if base-size |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2417 (delete-region (+ base-size (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2418 (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2419 ;; Delete the longest partial match for CHOICE |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2420 ;; that can be found before point. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2421 (choose-completion-delete-max-match choice)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2422 (insert choice) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2423 (remove-text-properties (- (point) (length choice)) (point) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2424 '(mouse-face nil)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2425 ;; Update point in the window that BUFFER is showing in. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2426 (let ((window (get-buffer-window buffer t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2427 (set-window-point window (point)))) |
| 257 | 2428 |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2429 (defun bibtex-pop (arg direction) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2430 "Generic function used by `bibtex-pop-previous' and `bibtex-pop-next'." |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2431 (let (bibtex-help-message) |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2432 (bibtex-find-text nil)) |
| 257 | 2433 (save-excursion |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2434 ;; parse current field |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2435 (bibtex-inside-field) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
2436 (let* ((case-fold-search t) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2437 (bounds (bibtex-enclosing-field)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2438 (start-old-text (bibtex-start-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2439 (stop-old-text (bibtex-end-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2440 (start-name (bibtex-start-of-name-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2441 (stop-name (bibtex-end-of-name-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2442 ;; construct regexp for field with same name as this one, |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2443 ;; ignoring possible OPT's or ALT's |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2444 (field-name (progn |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2445 (goto-char start-name) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2446 (buffer-substring-no-properties |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2447 (if (looking-at "\\(OPT\\)\\|\\(ALT\\)") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2448 (match-end 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2449 (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2450 stop-name)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2451 ;; if executed several times in a row, start each search where |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2452 ;; the last one was finished |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2453 (unless (eq last-command 'bibtex-pop) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2454 (bibtex-enclosing-entry-maybe-empty-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2455 (setq bibtex-pop-previous-search-point (match-beginning 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2456 bibtex-pop-next-search-point (point))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2457 (if (eq direction 'previous) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2458 (goto-char bibtex-pop-previous-search-point) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2459 (goto-char bibtex-pop-next-search-point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2460 ;; Now search for arg'th previous/next similar field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2461 (let (bounds failure new-text) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2462 (while (and (not failure) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2463 (> arg 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2464 (cond ((eq direction 'previous) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2465 (if (setq bounds (bibtex-search-backward-field field-name)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2466 (goto-char (bibtex-start-of-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2467 (setq failure t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2468 ((eq direction 'next) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2469 (if (setq bounds (bibtex-search-forward-field field-name)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2470 (goto-char (bibtex-end-of-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2471 (setq failure t)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2472 (setq arg (- arg 1))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2473 (if failure |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2474 (error "No %s matching BibTeX field" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2475 (if (eq direction 'previous) "previous" "next")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2476 ;; Found a matching field. Remember boundaries. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2477 (setq bibtex-pop-previous-search-point (bibtex-start-of-field bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2478 bibtex-pop-next-search-point (bibtex-end-of-field bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2479 new-text (bibtex-text-in-field-bounds bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2480 (bibtex-flash-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2481 ;; Go back to where we started, delete old text, and pop new. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2482 (goto-char stop-old-text) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2483 (delete-region start-old-text stop-old-text) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2484 (insert new-text))))) |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2485 (let (bibtex-help-message) |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2486 (bibtex-find-text nil)) |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2487 (setq this-command 'bibtex-pop)) |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
2488 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2489 (defsubst bibtex-read-key (prompt &optional key) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2490 "Read BibTeX key from minibuffer using PROMPT and default KEY." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2491 (completing-read prompt bibtex-reference-keys |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2492 nil nil key 'bibtex-key-history)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2493 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2494 ;; Interactive Functions: |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2495 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2496 ;;;###autoload |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2497 (defun bibtex-mode () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2498 "Major mode for editing BibTeX files. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2499 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2500 General information on working with BibTeX mode: |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2501 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2502 You should use commands such as \\[bibtex-Book] to get a template for a |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2503 specific entry. You should then fill in all desired fields using |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2504 \\[bibtex-next-field] to jump from field to field. After having filled |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2505 in all desired fields in the entry, you should clean the new entry |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2506 with the command \\[bibtex-clean-entry]. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2507 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2508 Some features of BibTeX mode are available only by setting the variable |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2509 `bibtex-maintain-sorted-entries' to non-nil. However, then BibTeX mode will |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2510 work only with buffers containing valid (syntactical correct) entries |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2511 and with entries being sorted. This is usually the case, if you have |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2512 created a buffer completely with BibTeX mode and finished every new |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2513 entry with \\[bibtex-clean-entry]. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2514 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2515 For third party BibTeX files, call the function `bibtex-convert-alien' |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2516 to fully take advantage of all features of BibTeX mode. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2517 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2518 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2519 Special information: |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2520 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2521 A command such as \\[bibtex-Book] will outline the fields for a BibTeX book entry. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2522 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2523 The optional fields start with the string OPT, and are thus ignored by BibTeX. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2524 Alternatives from which only one is required start with the string ALT. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2525 The OPT or ALT string may be removed from a field with \\[bibtex-remove-OPT-or-ALT]. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2526 \\[bibtex-make-field] inserts a new field after the current one. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2527 \\[bibtex-kill-field] kills the current field entirely. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2528 \\[bibtex-yank] yanks the last recently killed field after the current field. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2529 \\[bibtex-remove-delimiters] removes the double-quotes or braces around the text of the current field. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2530 \\[bibtex-empty-field] replaces the text of the current field with the default \"\" or {}. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2531 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2532 The command \\[bibtex-clean-entry] cleans the current entry, i.e. it removes OPT/ALT |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2533 from all non-empty optional or alternative fields, checks that no required |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2534 fields are empty, and does some formatting dependent on the value of |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2535 `bibtex-entry-format'. |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2536 Note: some functions in BibTeX mode depend on entries being in a special |
|
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2537 format (all fields beginning on separate lines), so it is usually a bad |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2538 idea to remove `realign' from `bibtex-entry-format'. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2539 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2540 Use \\[bibtex-find-text] to position the cursor at the end of the current field. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2541 Use \\[bibtex-next-field] to move to end of the next field. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2542 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2543 The following may be of interest as well: |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2544 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2545 Functions: |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2546 `bibtex-entry' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2547 `bibtex-kill-entry' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2548 `bibtex-yank-pop' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2549 `bibtex-pop-previous' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2550 `bibtex-pop-next' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2551 `bibtex-complete' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2552 `bibtex-print-help-message' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2553 `bibtex-generate-autokey' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2554 `bibtex-beginning-of-entry' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2555 `bibtex-end-of-entry' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2556 `bibtex-reposition-window' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2557 `bibtex-mark-entry' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2558 `bibtex-ispell-abstract' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2559 `bibtex-ispell-entry' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2560 `bibtex-narrow-to-entry' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2561 `bibtex-sort-buffer' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2562 `bibtex-validate' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2563 `bibtex-count' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2564 `bibtex-fill-entry' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2565 `bibtex-reformat' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2566 `bibtex-convert-alien' |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2567 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2568 Variables: |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2569 `bibtex-field-delimiters' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2570 `bibtex-include-OPTcrossref' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2571 `bibtex-include-OPTkey' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2572 `bibtex-user-optional-fields' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2573 `bibtex-entry-format' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2574 `bibtex-sort-ignore-string-entries' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2575 `bibtex-maintain-sorted-entries' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2576 `bibtex-entry-field-alist' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2577 `bibtex-predefined-strings' |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2578 `bibtex-string-files' |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2579 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2580 --------------------------------------------------------- |
| 19461 | 2581 Entry to BibTeX mode calls the value of `bibtex-mode-hook' if that value is |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2582 non-nil. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2583 |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2584 \\{bibtex-mode-map}" |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2585 (interactive) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2586 (kill-all-local-variables) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2587 (use-local-map bibtex-mode-map) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2588 (setq major-mode 'bibtex-mode) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2589 (setq mode-name "BibTeX") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2590 (set-syntax-table bibtex-mode-syntax-table) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2591 (make-local-variable 'bibtex-buffer-last-parsed-tick) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2592 ;; Install stealthy parse function if not already installed |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2593 (unless bibtex-parse-idle-timer |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2594 (setq bibtex-parse-idle-timer (bibtex-run-with-idle-timer |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2595 bibtex-parse-keys-timeout t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2596 'bibtex-parse-buffers-stealthily))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2597 (set (make-local-variable 'paragraph-start) "[ \f\n\t]*$") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2598 (set (make-local-variable 'comment-start) bibtex-comment-start) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2599 (set (make-local-variable 'comment-start-skip) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2600 (concat (regexp-quote bibtex-comment-start) "\\>[ \t]*")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2601 (set (make-local-variable 'comment-column) 0) |
|
51416
83476384bebd
(bibtex-member-of-regexp, bibtex-assoc-of-regexp, bibtex-format-entry)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
51415
diff
changeset
|
2602 (set (make-local-variable 'defun-prompt-regexp) "^[ \t]*@[a-zA-Z0-9]+[ \t]*") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2603 (set (make-local-variable 'outline-regexp) "[ \t]*@") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2604 (set (make-local-variable 'fill-paragraph-function) 'bibtex-fill-field) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2605 (set (make-local-variable 'fill-prefix) (make-string (+ bibtex-entry-offset |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2606 bibtex-contline-indentation) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2607 ? )) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2608 (set (make-local-variable 'font-lock-defaults) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2609 '(bibtex-font-lock-keywords |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2610 nil t ((?$ . "\"") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2611 ;; Mathematical expressions should be fontified as strings |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2612 (?\" . ".") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2613 ;; Quotes are field delimiters and quote-delimited |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2614 ;; entries should be fontified in the same way as |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2615 ;; brace-delimited ones |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2616 ) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2617 nil |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2618 (font-lock-syntactic-keywords . bibtex-font-lock-syntactic-keywords) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2619 (font-lock-mark-block-function |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2620 . (lambda () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2621 (set-mark (bibtex-end-of-entry)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2622 (bibtex-beginning-of-entry))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2623 (setq imenu-generic-expression |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2624 (list (list nil bibtex-entry-head bibtex-key-in-head))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2625 (make-local-variable 'choose-completion-string-functions) |
| 20459 | 2626 (setq imenu-case-fold-search t) |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2627 ;; XEmacs needs easy-menu-add, Emacs does not care |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2628 (easy-menu-add bibtex-edit-menu) |
|
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
2629 (easy-menu-add bibtex-entry-menu) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2630 (run-hooks 'bibtex-mode-hook)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2631 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2632 (defun bibtex-entry (entry-type) |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2633 "Insert a new BibTeX entry. |
| 19461 | 2634 After insertion it calls the functions in `bibtex-add-entry-hook'." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2635 (interactive (let* ((completion-ignore-case t) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2636 (e-t (completing-read |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2637 "Entry Type: " |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2638 bibtex-entry-field-alist |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2639 nil t nil 'bibtex-entry-type-history))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2640 (list e-t))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2641 (let* (required optional |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2642 (key (if bibtex-maintain-sorted-entries |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2643 (bibtex-read-key (format "%s key: " entry-type)))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2644 (e (assoc-ignore-case entry-type bibtex-entry-field-alist)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2645 (r-n-o (elt e 1)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2646 (c-ref (elt e 2))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2647 (if (not e) |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2648 (error "Bibtex entry type %s not defined" entry-type)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2649 (if (and (member entry-type bibtex-include-OPTcrossref) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2650 c-ref) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2651 (setq required (elt c-ref 0) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2652 optional (elt c-ref 1)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2653 (setq required (elt r-n-o 0) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2654 optional (elt r-n-o 1))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2655 (unless (bibtex-prepare-new-entry (list key nil entry-type)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2656 (error "Entry with key `%s' already exists" key)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2657 (indent-to-column bibtex-entry-offset) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2658 (insert "@" entry-type (bibtex-entry-left-delimiter)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2659 (if key |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2660 (insert key)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2661 (save-excursion |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2662 (mapcar 'bibtex-make-field required) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2663 (if (member entry-type bibtex-include-OPTcrossref) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2664 (bibtex-make-optional-field '("crossref"))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2665 (if bibtex-include-OPTkey |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2666 (if (or (stringp bibtex-include-OPTkey) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2667 (fboundp bibtex-include-OPTkey)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2668 (bibtex-make-optional-field |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2669 (list "key" nil bibtex-include-OPTkey)) |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2670 (bibtex-make-optional-field '("key")))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2671 (mapcar 'bibtex-make-optional-field optional) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2672 (mapcar 'bibtex-make-optional-field bibtex-user-optional-fields) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2673 (if bibtex-comma-after-last-field |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2674 (insert ",")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2675 (insert "\n") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2676 (indent-to-column bibtex-entry-offset) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2677 (insert (bibtex-entry-right-delimiter) "\n\n")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2678 (bibtex-next-field t) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2679 (if (member-ignore-case entry-type bibtex-autofill-types) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2680 (bibtex-autofill-entry)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2681 (run-hooks 'bibtex-add-entry-hook))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2682 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2683 (defun bibtex-parse-entry () |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2684 "Parse entry at point, return an alist. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2685 The alist elements have the form (FIELD . TEXT), where FIELD can also be |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2686 the special strings \"=type=\" and \"=key=\"." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2687 (let (alist bounds) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2688 (when (looking-at bibtex-entry-head) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2689 (push (cons "=type=" (match-string bibtex-type-in-head)) alist) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2690 (push (cons "=key=" (match-string bibtex-key-in-head)) alist) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2691 (goto-char (match-end bibtex-key-in-head)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2692 (while (setq bounds (bibtex-parse-field bibtex-field-name)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2693 (push (cons (bibtex-name-in-field bounds) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2694 (bibtex-text-in-field-bounds bounds)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2695 alist) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2696 (goto-char (bibtex-end-of-field bounds)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2697 alist)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2698 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2699 (defun bibtex-autofill-entry () |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2700 "Try to fill fields based on surrounding entries." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2701 (interactive) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2702 (undo-boundary) ;So you can easily undo it, if it didn't work right. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2703 (bibtex-beginning-of-entry) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2704 (when (looking-at bibtex-entry-head) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2705 (let ((type (match-string bibtex-type-in-head)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2706 (key (match-string bibtex-key-in-head)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2707 (key-end (match-end bibtex-key-in-head)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2708 (case-fold-search t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2709 tmp other-key other bounds) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2710 ;; The fields we want to change start right after the key. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2711 (goto-char key-end) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2712 ;; First see whether to use the previous or the next entry |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2713 ;; for "inspiration". |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2714 (save-excursion |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2715 (goto-char (1- (match-beginning 0))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2716 (bibtex-beginning-of-entry) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2717 (when (and |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2718 (looking-at bibtex-entry-head) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2719 (equal type (match-string bibtex-type-in-head)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2720 ;; In case we found ourselves :-( |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2721 (not (equal key (setq tmp (match-string bibtex-key-in-head))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2722 (setq other-key tmp) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2723 (setq other (point)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2724 (save-excursion |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2725 (bibtex-end-of-entry) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2726 (bibtex-skip-to-valid-entry) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2727 (when (and |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2728 (looking-at bibtex-entry-head) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2729 (equal type (match-string bibtex-type-in-head)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2730 ;; In case we found ourselves :-( |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2731 (not (equal key (setq tmp (match-string bibtex-key-in-head)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2732 (or (not other-key) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2733 ;; Check which is the best match. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2734 (< (length (try-completion "" (list key other-key))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2735 (length (try-completion "" (list key tmp)))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2736 (setq other-key tmp) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2737 (setq other (point)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2738 ;; Then fill the new entry's fields with the chosen other entry. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2739 (when other |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2740 (setq other (save-excursion (goto-char other) (bibtex-parse-entry))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2741 (setq key-end (point)) ;In case parse-entry changed the buffer. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2742 (while (setq bounds (bibtex-parse-field bibtex-field-name)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2743 (goto-char (bibtex-start-of-name-in-field bounds)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2744 (let* ((name (buffer-substring |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2745 (if (looking-at "ALT\\|OPT") (match-end 0) (point)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2746 (bibtex-end-of-name-in-field bounds))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2747 (text (assoc-ignore-case name other))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2748 (goto-char (bibtex-start-of-text-in-field bounds)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2749 (if (not (and (looking-at bibtex-empty-field-re) text)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2750 (goto-char (bibtex-end-of-field bounds)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2751 (delete-region (point) (bibtex-end-of-text-in-field bounds)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2752 (insert (cdr text))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2753 ;; Finally try to update the text based on the difference between |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2754 ;; the two keys. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2755 (let* ((prefix (try-completion "" (list key other-key))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2756 ;; If the keys are foo91 and foo92, don't replace 1 for 2 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2757 ;; but 91 for 92 instead. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2758 (_ (if (string-match "[0-9]+\\'" prefix) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2759 (setq prefix (substring prefix 0 (match-beginning 0))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2760 (suffix (substring key (length prefix))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2761 (other-suffix (substring other-key (length prefix)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2762 (while (re-search-backward (regexp-quote other-suffix) key-end 'move) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2763 (replace-match suffix))))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2764 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2765 (defun bibtex-print-help-message () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2766 "Print helpful information about current field in current BibTeX entry." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2767 (interactive) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2768 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2769 (let* ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2770 (bounds (bibtex-enclosing-field)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2771 (mb (bibtex-start-of-name-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2772 (field-name (buffer-substring-no-properties |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2773 (if (progn (goto-char mb) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2774 (looking-at "OPT\\|ALT")) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2775 (match-end 0) mb) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2776 (bibtex-end-of-name-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2777 (entry-type (progn (re-search-backward |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2778 bibtex-entry-maybe-empty-head nil t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2779 (bibtex-type-in-head))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2780 (entry-list (assoc-ignore-case entry-type |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2781 bibtex-entry-field-alist)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2782 (c-r-list (elt entry-list 2)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2783 (req-opt-list (if (and (member entry-type |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2784 bibtex-include-OPTcrossref) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2785 c-r-list) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2786 c-r-list |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2787 (elt entry-list 1))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2788 (list-of-entries (append (elt req-opt-list 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2789 (elt req-opt-list 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2790 bibtex-user-optional-fields |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2791 (if (member entry-type |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2792 bibtex-include-OPTcrossref) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2793 '(("crossref" "Reference key of the cross-referenced entry"))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2794 (if bibtex-include-OPTkey |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2795 '(("key" "Used for reference key creation if author and editor fields are missing"))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2796 (comment (assoc-ignore-case field-name list-of-entries))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2797 (if comment |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2798 (message (elt comment 1)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2799 (message "No comment available"))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2800 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2801 (defun bibtex-make-field (field &optional called-by-yank) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2802 "Make a field named FIELD in current BibTeX entry. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2803 FIELD is either a string or a list of the form |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2804 \(FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG) as in |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2805 `bibtex-entry-field-alist'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2806 (interactive |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2807 (list (let* ((entry-type |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2808 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2809 (bibtex-enclosing-entry-maybe-empty-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2810 (bibtex-type-in-head))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2811 ;; "preliminary" completion list |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2812 (fl (nth 1 (assoc-ignore-case |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2813 entry-type bibtex-entry-field-alist))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2814 ;; "full" completion list |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2815 (field-list (append (nth 0 fl) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2816 (nth 1 fl) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2817 bibtex-user-optional-fields |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2818 (if (member entry-type |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2819 bibtex-include-OPTcrossref) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2820 '(("crossref"))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2821 (if bibtex-include-OPTkey |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2822 '(("key"))))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2823 (completion-ignore-case t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2824 (completing-read "BibTeX field name: " field-list |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2825 nil nil nil bibtex-field-history)))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2826 (unless (consp field) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2827 (setq field (list field))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2828 (if (or (interactive-p) called-by-yank) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2829 (let (bibtex-help-message) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2830 (bibtex-find-text nil t t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2831 (if (looking-at "[}\"]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2832 (forward-char)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2833 (insert ",\n") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2834 (indent-to-column (+ bibtex-entry-offset bibtex-field-indentation)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2835 (if (nth 3 field) (insert "ALT")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2836 (insert (car field) " ") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2837 (if bibtex-align-at-equal-sign |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2838 (indent-to-column (+ bibtex-entry-offset |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2839 (- bibtex-text-indentation 2)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2840 (insert "= ") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2841 (if (not bibtex-align-at-equal-sign) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2842 (indent-to-column (+ bibtex-entry-offset |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2843 bibtex-text-indentation))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2844 (if (not called-by-yank) (insert (bibtex-field-left-delimiter))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2845 (let ((init (nth 2 field))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2846 (cond ((stringp init) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2847 (insert init)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2848 ((fboundp init) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2849 (insert (funcall init))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2850 (if (not called-by-yank) (insert (bibtex-field-right-delimiter))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2851 (if (interactive-p) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2852 (forward-char -1))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2853 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2854 (defun bibtex-beginning-of-entry () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2855 "Move to beginning of BibTeX entry (beginning of line). |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2856 If inside an entry, move to the beginning of it, otherwise move to the |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2857 beginning of the previous entry. If point is ahead of all BibTeX entries |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2858 move point to the beginning of buffer. Return the new location of point." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2859 (interactive) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2860 (skip-chars-forward " \t") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2861 (if (looking-at "@") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2862 (forward-char)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2863 (re-search-backward "^[ \t]*@" nil 'move) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2864 (point)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2865 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2866 (defun bibtex-end-of-entry () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2867 "Move to end of BibTeX entry (past the closing brace). |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2868 If inside an entry, move to the end of it, otherwise move to the end |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2869 of the previous entry. Do not move if ahead of first entry. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2870 Return the new location of point." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2871 (interactive) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2872 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2873 (org (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2874 (pnt (bibtex-beginning-of-entry)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2875 err bounds) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2876 (cond ((looking-at bibtex-valid-entry-whitespace-re) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2877 (bibtex-search-entry t nil t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2878 (unless (equal (match-beginning 0) pnt) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2879 (setq err t))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2880 ((setq bounds (bibtex-parse-string)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2881 (goto-char (bibtex-end-of-string bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2882 ((looking-at "[ \t]*@[ \t]*preamble[ \t\n]*") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2883 (goto-char (match-end 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2884 (cond ((looking-at "(") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2885 (unless (re-search-forward ")[ \t]*\n\n" nil 'move) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2886 (setq err t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2887 ((looking-at "{") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2888 (unless (re-search-forward "}[ \t]*\n\n" nil 'move) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2889 (setq err t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2890 (t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2891 (setq err t))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2892 (unless err |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2893 (goto-char (match-beginning 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2894 (forward-char))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2895 (t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2896 (if (interactive-p) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2897 (message "Not on a known BibTeX entry.")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2898 (goto-char org))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2899 (when err |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2900 (goto-char pnt) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2901 (error "Syntactically incorrect BibTeX entry starts here"))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2902 (point)) |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2903 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2904 (defun bibtex-reposition-window (&optional arg) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2905 "Make the current BibTeX entry visible. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2906 Optional argument ARG is exactly as in `recenter'." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2907 (interactive "P") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2908 (save-excursion |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2909 (goto-char |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2910 (/ (+ (bibtex-beginning-of-entry) (bibtex-end-of-entry)) 2)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2911 (recenter arg))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2912 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2913 (defun bibtex-mark-entry () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2914 "Put mark at beginning, point at end of current BibTeX entry." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2915 (interactive) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2916 (set-mark (bibtex-beginning-of-entry)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2917 (bibtex-end-of-entry)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2918 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2919 (defun bibtex-count-entries (&optional count-string-entries) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2920 "Count number of entries in current buffer or region. |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2921 With prefix argument COUNT-STRING-ENTRIES it counts all entries, |
|
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
2922 otherwise it counts all except Strings. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2923 If mark is active it counts entries in region, if not in whole buffer." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2924 (interactive "P") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2925 (let ((number 0) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2926 (bibtex-sort-ignore-string-entries |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2927 (not count-string-entries))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2928 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2929 (save-restriction |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2930 (narrow-to-region (if (bibtex-mark-active) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2931 (region-beginning) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2932 (bibtex-beginning-of-first-entry)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2933 (if (bibtex-mark-active) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2934 (region-end) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2935 (point-max))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2936 (goto-char (point-min)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2937 (bibtex-map-entries (lambda (key beg end) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2938 (setq number (1+ number)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2939 (message "%s contains %d entries." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2940 (if (bibtex-mark-active) "Region" "Buffer") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2941 number))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2942 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2943 (defun bibtex-ispell-entry () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2944 "Spell whole BibTeX entry." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2945 (interactive) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2946 (ispell-region (save-excursion (bibtex-beginning-of-entry)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2947 (save-excursion (bibtex-end-of-entry)))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2948 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2949 (defun bibtex-ispell-abstract () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2950 "Spell abstract of BibTeX entry." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2951 (interactive) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2952 (let ((bounds (save-excursion |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2953 (bibtex-beginning-of-entry) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2954 (bibtex-search-forward-field "abstract" t)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2955 (if bounds |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2956 (ispell-region (bibtex-start-of-text-in-field bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2957 (bibtex-end-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2958 (error "No abstract in entry")))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2959 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2960 (defun bibtex-narrow-to-entry () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2961 "Narrow buffer to current BibTeX entry." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2962 (interactive) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
2963 (save-excursion |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2964 (widen) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2965 (narrow-to-region (bibtex-beginning-of-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2966 (bibtex-end-of-entry)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2967 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2968 (defun bibtex-entry-index () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2969 "Return the index of the BibTeX entry at point. Move point. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2970 The index is a list (KEY CROSSREF-KEY ENTRY-NAME) that is used for sorting |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2971 the entries of the BibTeX buffer. Return nil if no entry found." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2972 (let ((case-fold-search t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2973 (if (re-search-forward bibtex-entry-maybe-empty-head nil t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2974 (let ((key (bibtex-key-in-head)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2975 ;; all entry names should be downcase (for ease of comparison) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2976 (entry-name (downcase (bibtex-type-in-head)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2977 ;; Don't search CROSSREF-KEY if we don't need it. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2978 (if (equal bibtex-maintain-sorted-entries 'crossref) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2979 (save-excursion |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2980 (bibtex-beginning-of-entry) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2981 (let ((bounds (bibtex-search-forward-field |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2982 "\\(OPT\\)?crossref" t))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2983 (list key |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2984 (if bounds (bibtex-text-in-field-bounds bounds t)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2985 entry-name)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
2986 (list key nil entry-name))))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2987 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2988 (defun bibtex-lessp (index1 index2) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2989 "Predicate for sorting BibTeX entries with indices INDEX1 and INDEX2. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2990 Each index is a list (KEY CROSSREF-KEY ENTRY-NAME). |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2991 The predicate depends on the variable `bibtex-maintain-sorted-entries'." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2992 (cond ((not index1) (not index2)) ; indices can be nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2993 ((not index2) nil) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2994 ((equal bibtex-maintain-sorted-entries 'crossref) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2995 (if (nth 1 index1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2996 (if (nth 1 index2) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2997 (or (string-lessp (nth 1 index1) (nth 1 index2)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2998 (and (string-equal (nth 1 index1) (nth 1 index2)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
2999 (string-lessp (nth 0 index1) (nth 0 index2)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3000 (not (string-lessp (nth 0 index2) (nth 1 index1)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3001 (if (nth 1 index2) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3002 (string-lessp (nth 0 index1) (nth 1 index2)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3003 (string-lessp (nth 0 index1) (nth 0 index2))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3004 ((equal bibtex-maintain-sorted-entries 'entry-class) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3005 (let ((n1 (cdr (or (assoc (nth 2 index1) bibtex-sort-entry-class-alist) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3006 (assoc 'catch-all bibtex-sort-entry-class-alist) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3007 '(nil . 1000)))) ; if there is nothing else |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3008 (n2 (cdr (or (assoc (nth 2 index2) bibtex-sort-entry-class-alist) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3009 (assoc 'catch-all bibtex-sort-entry-class-alist) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3010 '(nil . 1000))))) ; if there is nothing else |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3011 (or (< n1 n2) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3012 (and (= n1 n2) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3013 (string-lessp (car index1) (car index2)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3014 (t ; (equal bibtex-maintain-sorted-entries 'plain) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3015 (string-lessp (car index1) (car index2))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3016 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3017 (defun bibtex-sort-buffer () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3018 "Sort BibTeX buffer alphabetically by key. |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3019 The predicate for sorting is defined via `bibtex-maintain-sorted-entries'. |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3020 If its value is nil use plain sorting. Text outside of BibTeX entries is not |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3021 affected. If `bibtex-sort-ignore-string-entries' is non-nil, @String entries |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3022 will be ignored." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3023 (interactive) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3024 (save-restriction |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3025 (narrow-to-region (bibtex-beginning-of-first-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3026 (save-excursion (goto-char (point-max)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3027 (bibtex-end-of-entry))) |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
3028 (bibtex-skip-to-valid-entry) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3029 (sort-subr nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3030 'bibtex-skip-to-valid-entry ; NEXTREC function |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3031 'bibtex-end-of-entry ; ENDREC function |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3032 'bibtex-entry-index ; STARTKEY function |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3033 nil ; ENDKEY function |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3034 'bibtex-lessp))) ; PREDICATE |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3035 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3036 (defun bibtex-find-crossref (crossref-key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3037 "Move point to the beginning of BibTeX entry CROSSREF-KEY. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3038 Return position of entry if CROSSREF-KEY is found and nil otherwise. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3039 If position of current entry is after CROSSREF-KEY an error is signaled. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3040 If called interactively, CROSSREF-KEY defaults to crossref key of current |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3041 entry." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3042 (interactive |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3043 (let ((crossref-key |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3044 (save-excursion |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3045 (bibtex-beginning-of-entry) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3046 (let ((bounds (bibtex-search-forward-field "crossref" t))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3047 (if bounds |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3048 (bibtex-text-in-field-bounds bounds t)))))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3049 (list (bibtex-read-key "Find crossref key: " crossref-key)))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3050 (let ((pos (save-excursion (bibtex-find-entry crossref-key)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3051 (if (and pos (> (point) pos)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3052 (error "This entry must not follow the crossrefed entry!")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3053 (goto-char pos))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3054 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3055 (defun bibtex-find-entry (key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3056 "Move point to the beginning of BibTeX entry named KEY. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3057 Return position of entry if KEY is found or nil if not found." |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3058 (interactive (list (bibtex-read-key "Find key: "))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3059 (let* (case-fold-search |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3060 (pnt (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3061 (goto-char (point-min)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3062 (if (re-search-forward (concat "^[ \t]*\\(" |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3063 bibtex-entry-type |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3064 "\\)[ \t]*[({][ \t\n]*\\(" |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3065 (regexp-quote key) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3066 "\\)[ \t\n]*[,=]") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3067 nil t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3068 (match-beginning 0))))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3069 (cond (pnt |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3070 (goto-char pnt)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3071 ((interactive-p) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3072 (message "Key `%s' not found" key))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3073 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3074 (defun bibtex-prepare-new-entry (index) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3075 "Prepare a new BibTeX entry with index INDEX. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3076 INDEX is a list (KEY CROSSREF-KEY ENTRY-NAME). |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3077 Move point where the entry KEY should be placed. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3078 If `bibtex-maintain-sorted-entries' is non-nil, perform a binary |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3079 search to look for place for KEY. This will fail if buffer is not in |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3080 sorted order, see \\[bibtex-validate].) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3081 Return t if preparation was successful or nil if entry KEY already exists." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3082 (let ((key (nth 0 index)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3083 key-exist) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3084 (cond ((or (null key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3085 (and (stringp key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3086 (string-equal key "")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3087 (and (not (setq key-exist (bibtex-find-entry key))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3088 (not bibtex-maintain-sorted-entries))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3089 (bibtex-move-outside-of-entry)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3090 ;; if key-exist is non-nil due to the previous cond clause |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3091 ;; then point will be at beginning of entry named key. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3092 (key-exist) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3093 (t ; bibtex-maintain-sorted-entries is non-nil |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3094 (let* ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3095 (left (save-excursion (bibtex-beginning-of-first-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3096 (bibtex-skip-to-valid-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3097 (point))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3098 (right (save-excursion (bibtex-beginning-of-last-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3099 (bibtex-end-of-entry))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3100 (found (if (>= left right) left)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3101 actual-index new) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3102 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3103 ;; Binary search |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3104 (while (not found) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3105 (goto-char (/ (+ left right) 2)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3106 (bibtex-skip-to-valid-entry t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3107 (setq actual-index (bibtex-entry-index)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3108 (cond ((bibtex-lessp index actual-index) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3109 (setq new (bibtex-beginning-of-entry)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3110 (if (equal right new) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3111 (setq found right) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3112 (setq right new))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3113 (t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3114 (bibtex-end-of-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3115 (bibtex-skip-to-valid-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3116 (setq new (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3117 (if (equal left new) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3118 (setq found right) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3119 (setq left new)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3120 (goto-char found) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3121 (bibtex-beginning-of-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3122 (setq actual-index (save-excursion (bibtex-entry-index))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3123 (when (or (not actual-index) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3124 (bibtex-lessp actual-index index)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3125 ;; buffer contains no valid entries or |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3126 ;; greater than last entry --> append |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3127 (bibtex-end-of-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3128 (if (not (bobp)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3129 (newline (forward-line 2))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3130 (beginning-of-line))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3131 (unless key-exist t))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3132 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3133 (defun bibtex-validate (&optional test-thoroughly) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3134 "Validate if buffer or region is syntactically correct. |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3135 Only known entry types are checked, so you can put comments |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3136 outside of entries. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3137 With optional argument TEST-THOROUGHLY non-nil it checks for absence of |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3138 required fields and questionable month fields as well. |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3139 If mark is active, validate current region, if not the whole buffer. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3140 Returns t if test was successful, nil otherwise." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3141 (interactive "P") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3142 (let* ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3143 error-list syntax-error) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3144 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3145 (save-restriction |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3146 (narrow-to-region (if (bibtex-mark-active) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3147 (region-beginning) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3148 (bibtex-beginning-of-first-entry)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3149 (if (bibtex-mark-active) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3150 (region-end) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3151 (point-max))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3152 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3153 ;; looking if entries fit syntactical structure |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3154 (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3155 (bibtex-progress-message "Checking syntactical structure") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3156 (let (bibtex-sort-ignore-string-entries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3157 (while (re-search-forward "^[ \t]*@" nil t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3158 (bibtex-progress-message) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3159 (forward-char -1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3160 (let ((pnt (point))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3161 (if (not (looking-at bibtex-any-valid-entry-re)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3162 (forward-char) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3163 (bibtex-skip-to-valid-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3164 (if (equal (point) pnt) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3165 (forward-char) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3166 (goto-char pnt) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3167 (push (list (bibtex-current-line) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3168 "Syntax error (check esp. commas, braces, and quotes)") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3169 error-list) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3170 (forward-char)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3171 (bibtex-progress-message 'done) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3172 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3173 (if error-list |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3174 (setq syntax-error t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3175 ;; looking for correct sort order and duplicates (only if |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3176 ;; there were no syntax errors) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3177 (if bibtex-maintain-sorted-entries |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3178 (let (previous current) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3179 (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3180 (bibtex-progress-message "Checking correct sort order") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3181 (bibtex-map-entries |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3182 (lambda (key beg end) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3183 (bibtex-progress-message) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3184 (goto-char beg) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3185 (setq current (bibtex-entry-index)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3186 (cond ((or (not previous) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3187 (bibtex-lessp previous current)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3188 (setq previous current)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3189 ((string-equal (car previous) (car current)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3190 (push (list (bibtex-current-line) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3191 "Duplicate key with previous") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3192 error-list)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3193 (t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3194 (setq previous current) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3195 (push (list (bibtex-current-line) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3196 "Entries out of order") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3197 error-list))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3198 (bibtex-progress-message 'done))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3199 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3200 (when test-thoroughly |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3201 (goto-char (point-min)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3202 (bibtex-progress-message |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3203 "Checking required fields and month fields") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3204 (let ((bibtex-sort-ignore-string-entries t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3205 (questionable-month |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3206 (regexp-opt (mapcar 'car bibtex-predefined-month-strings)))) |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
3207 (bibtex-map-entries |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3208 (lambda (key beg end) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3209 (bibtex-progress-message) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3210 (let* ((entry-list (progn |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3211 (goto-char beg) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3212 (bibtex-search-entry nil end) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3213 (assoc-ignore-case (bibtex-type-in-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3214 bibtex-entry-field-alist))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3215 (req (copy-sequence (elt (elt entry-list 1) 0))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3216 (creq (copy-sequence (elt (elt entry-list 2) 0))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3217 crossref-there bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3218 (goto-char beg) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3219 (while (setq bounds (bibtex-search-forward-field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3220 bibtex-field-name end)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3221 (goto-char (bibtex-start-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3222 (let ((field-name (downcase (bibtex-name-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3223 case-fold-search) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3224 (if (and (equal field-name "month") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3225 (not (string-match questionable-month |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3226 (bibtex-text-in-field-bounds bounds)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3227 (push (list (bibtex-current-line) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3228 "Questionable month field") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3229 error-list)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3230 (setq req (delete (assoc-ignore-case field-name req) req) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3231 creq (delete (assoc-ignore-case field-name creq) creq)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3232 (if (equal field-name "crossref") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3233 (setq crossref-there t)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3234 (if crossref-there |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3235 (setq req creq)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3236 (if (or (> (length req) 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3237 (and (= (length req) 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3238 (not (elt (car req) 3)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3239 ;; two (or more) fields missed or one field |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3240 ;; missed and this isn't flagged alternative |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3241 ;; (notice that this fails if there are more |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3242 ;; than two alternatives in a BibTeX entry, |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3243 ;; which isn't the case momentarily) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3244 (push (list (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3245 (bibtex-beginning-of-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3246 (bibtex-current-line)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3247 (concat "Required field `" (caar req) "' missing")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3248 error-list)))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3249 (bibtex-progress-message 'done))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3250 (if error-list |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3251 (let ((bufnam (buffer-name)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3252 (dir default-directory)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3253 (setq error-list |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3254 (sort error-list |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3255 (lambda (a b) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3256 (< (car a) (car b))))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3257 (let ((pop-up-windows t)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3258 (pop-to-buffer nil t)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3259 (switch-to-buffer |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3260 (get-buffer-create "*BibTeX validation errors*") t) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3261 ;; don't use switch-to-buffer-other-window, since this |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3262 ;; doesn't allow the second parameter NORECORD |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3263 (setq default-directory dir) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3264 (toggle-read-only -1) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3265 (compilation-mode) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3266 (delete-region (point-min) (point-max)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3267 (goto-char (point-min)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3268 (insert "BibTeX mode command `bibtex-validate'\n" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3269 (if syntax-error |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3270 "Maybe undetected errors due to syntax errors. Correct and validate again." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3271 "") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3272 "\n") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3273 (dolist (err error-list) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3274 (insert bufnam ":" (number-to-string (elt err 0)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3275 ": " (elt err 1) "\n")) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3276 (compilation-parse-errors nil nil) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3277 (setq compilation-old-error-list compilation-error-list) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3278 ;; this is necessary to avoid reparsing of buffer if you |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3279 ;; switch to compilation buffer and enter `compile-goto-error' |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3280 (set-buffer-modified-p nil) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3281 (toggle-read-only 1) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3282 (goto-char (point-min)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3283 (other-window -1) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3284 ;; return nil |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3285 nil) |
|
20907
9a55a557cb5a
(bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents:
20866
diff
changeset
|
3286 (if (bibtex-mark-active) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3287 (message "Region is syntactically correct") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3288 (message "Buffer is syntactically correct")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3289 t))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3290 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3291 (defun bibtex-next-field (arg) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3292 "Find end of text of next BibTeX field; with ARG, to its beginning." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3293 (interactive "P") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3294 (bibtex-inside-field) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3295 (let ((start (point))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3296 (condition-case () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3297 (let ((bounds (bibtex-enclosing-field))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3298 (goto-char (bibtex-end-of-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3299 (forward-char 2)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3300 (error |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3301 (goto-char start) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3302 (end-of-line) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3303 (forward-char)))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3304 (bibtex-find-text arg t)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3305 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3306 (defun bibtex-find-text (arg &optional as-if-interactive no-error) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3307 "Go to end of text of current field; with ARG, go to beginning." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3308 (interactive "P") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3309 (bibtex-inside-field) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3310 (let ((bounds (bibtex-enclosing-field (or (interactive-p) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3311 as-if-interactive)))) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3312 (if bounds |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3313 (progn (if arg |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3314 (progn (goto-char (bibtex-start-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3315 (if (looking-at "[{\"]") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3316 (forward-char))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3317 (goto-char (bibtex-end-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3318 (if (or (= (preceding-char) ?}) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3319 (= (preceding-char) ?\")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3320 (forward-char -1))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3321 (if bibtex-help-message |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3322 (bibtex-print-help-message))) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3323 (beginning-of-line) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3324 (cond ((setq bounds (bibtex-parse-string)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3325 (goto-char (if arg |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3326 (bibtex-start-of-text-in-string bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3327 (bibtex-end-of-text-in-string bounds)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3328 ((looking-at bibtex-entry-maybe-empty-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3329 (goto-char (if arg |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3330 (match-beginning bibtex-key-in-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3331 (match-end 0)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3332 (t |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3333 (unless no-error |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3334 (error "Not on BibTeX field"))))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3335 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3336 (defun bibtex-remove-OPT-or-ALT () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3337 "Remove the string starting optional/alternative fields. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3338 Align text and go thereafter to end of text." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3339 (interactive) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3340 (bibtex-inside-field) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3341 (let ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3342 (bounds (bibtex-enclosing-field))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3343 (save-excursion |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3344 (goto-char (bibtex-start-of-name-in-field bounds)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3345 (when (looking-at "OPT\\|ALT") |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3346 (delete-region (match-beginning 0) (match-end 0)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3347 ;; make field non-OPT |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3348 (search-forward "=") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3349 (forward-char -1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3350 (delete-horizontal-space) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3351 (if bibtex-align-at-equal-sign |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3352 (indent-to-column (- bibtex-text-indentation 2)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3353 (insert " ")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3354 (search-forward "=") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3355 (delete-horizontal-space) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3356 (if bibtex-align-at-equal-sign |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3357 (insert " ") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3358 (indent-to-column bibtex-text-indentation)))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3359 (bibtex-inside-field))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3360 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3361 (defun bibtex-remove-delimiters () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3362 "Remove \"\" or {} around string." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3363 (interactive) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3364 (save-excursion |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3365 (bibtex-inside-field) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3366 (let ((bounds (bibtex-enclosing-field))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3367 (goto-char (bibtex-start-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3368 (delete-char 1) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3369 (goto-char (1- (bibtex-end-of-text-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3370 (delete-backward-char 1)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3371 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3372 (defun bibtex-kill-field (&optional copy-only) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3373 "Kill the entire enclosing BibTeX field. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3374 With prefix arg COPY-ONLY, copy the current field to `bibtex-field-kill-ring', |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3375 but do not actually kill it." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3376 (interactive "P") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3377 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3378 (bibtex-inside-field) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3379 (let* ((case-fold-search t) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3380 (bounds (bibtex-enclosing-field)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3381 (end (bibtex-end-of-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3382 (beg (bibtex-start-of-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3383 (goto-char end) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3384 (skip-chars-forward " \t\n,") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3385 (push (list 'field (bibtex-name-in-field bounds) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3386 (bibtex-text-in-field-bounds bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3387 bibtex-field-kill-ring) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3388 (if (> (length bibtex-field-kill-ring) bibtex-field-kill-ring-max) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3389 (setcdr (nthcdr (1- bibtex-field-kill-ring-max) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3390 bibtex-field-kill-ring) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3391 nil)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3392 (setq bibtex-field-kill-ring-yank-pointer bibtex-field-kill-ring) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3393 (unless copy-only |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3394 (delete-region beg end)))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3395 (setq bibtex-last-kill-command 'field)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3396 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3397 (defun bibtex-copy-field-as-kill () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3398 (interactive) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3399 (bibtex-kill-field t)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3400 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3401 (defun bibtex-kill-entry (&optional copy-only) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3402 "Kill the entire enclosing BibTeX entry. |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3403 With prefix arg COPY-ONLY the current entry to |
| 19461 | 3404 `bibtex-entry-kill-ring', but do not actually kill it." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3405 (interactive "P") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3406 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3407 (let* ((case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3408 (beg (bibtex-beginning-of-entry)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3409 (end (progn (bibtex-end-of-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3410 (if (re-search-forward |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3411 bibtex-entry-maybe-empty-head nil 'move) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3412 (goto-char (match-beginning 0))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3413 (point)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3414 (push (list 'entry (buffer-substring-no-properties beg end)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3415 bibtex-entry-kill-ring) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3416 (if (> (length bibtex-entry-kill-ring) bibtex-entry-kill-ring-max) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3417 (setcdr (nthcdr (1- bibtex-entry-kill-ring-max) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3418 bibtex-entry-kill-ring) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3419 nil)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3420 (setq bibtex-entry-kill-ring-yank-pointer bibtex-entry-kill-ring) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3421 (unless copy-only |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3422 (delete-region beg end)))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3423 (setq bibtex-last-kill-command 'entry)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3424 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3425 (defun bibtex-copy-entry-as-kill () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3426 (interactive) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3427 (bibtex-kill-entry t)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3428 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3429 (defun bibtex-yank (&optional n) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3430 "Reinsert the last BibTeX item. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3431 More precisely, reinsert the field or entry killed or yanked most recently. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3432 With argument N, reinsert the Nth most recently killed BibTeX item. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3433 See also the command \\[bibtex-yank-pop]]." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3434 (interactive "*p") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3435 (bibtex-insert-current-kill (1- n)) |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3436 (setq this-command 'bibtex-yank)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3437 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3438 (defun bibtex-yank-pop (n) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3439 "Replace just-yanked killed BibTeX item with a different. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3440 This command is allowed only immediately after a `bibtex-yank' or a |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3441 `bibtex-yank-pop'. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3442 At such a time, the region contains a reinserted previously killed |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3443 BibTeX item. `bibtex-yank-pop' deletes that item and inserts in its |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3444 place a different killed BibTeX item. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3445 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3446 With no argument, the previous kill is inserted. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3447 With argument N, insert the Nth previous kill. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3448 If N is negative, this is a more recent kill. |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3449 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3450 The sequence of kills wraps around, so that after the oldest one |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3451 comes the newest one." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3452 (interactive "*p") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3453 (if (not (eq last-command 'bibtex-yank)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3454 (error "Previous command was not a BibTeX yank")) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3455 (setq this-command 'bibtex-yank) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3456 (let ((inhibit-read-only t)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3457 (delete-region (point) (mark t)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3458 (bibtex-insert-current-kill n))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3459 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3460 (defun bibtex-empty-field () |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3461 "Delete the text part of the current field, replace with empty text." |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3462 (interactive) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3463 (bibtex-inside-field) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3464 (let ((bounds (bibtex-enclosing-field))) |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3465 (goto-char (bibtex-start-of-text-in-field bounds)) |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3466 (delete-region (point) (bibtex-end-of-text-in-field bounds)) |
|
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3467 (insert (concat (bibtex-field-left-delimiter) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3468 (bibtex-field-right-delimiter)) ) |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3469 (bibtex-find-text t))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3470 |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
3471 (defun bibtex-pop-previous (arg) |
| 19461 | 3472 "Replace text of current field with the similar field in previous entry. |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3473 With arg, goes up ARG entries. Repeated, goes up so many times. May be |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
3474 intermixed with \\[bibtex-pop-next] (bibtex-pop-next)." |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
3475 (interactive "p") |
|
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
3476 (bibtex-pop arg 'previous)) |
| 257 | 3477 |
| 3478 (defun bibtex-pop-next (arg) | |
| 3479 "Replace text of current field with the text of similar field in next entry. | |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3480 With arg, goes down ARG entries. Repeated, goes down so many times. May be |
| 257 | 3481 intermixed with \\[bibtex-pop-previous] (bibtex-pop-previous)." |
| 3482 (interactive "p") | |
|
14789
d68b71228abd
(bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents:
14410
diff
changeset
|
3483 (bibtex-pop arg 'next)) |
| 257 | 3484 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3485 (defun bibtex-clean-entry (&optional new-key called-by-reformat) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3486 "Finish editing the current BibTeX entry and clean it up. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3487 Check that no required fields are empty and formats entry dependent |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3488 on the value of `bibtex-entry-format'. |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3489 If the reference key of the entry is empty or a prefix argument is given, |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3490 calculate a new reference key. (Note: this will only work if fields in entry |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3491 begin on separate lines prior to calling `bibtex-clean-entry' or if |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3492 'realign is contained in `bibtex-entry-format'.) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3493 Don't call `bibtex-clean-entry' on @Preamble entries. |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3494 At end of the cleaning process, the functions in |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3495 `bibtex-clean-entry-hook' are called with region narrowed to entry." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3496 ;; Opt. arg called-by-reformat is t if bibtex-clean-entry |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3497 ;; is called by bibtex-reformat |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3498 (interactive "P") |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3499 (let ((case-fold-search t) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3500 entry-type key) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3501 (bibtex-beginning-of-entry) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3502 (save-excursion |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3503 (when (re-search-forward bibtex-entry-maybe-empty-head nil t) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3504 (setq entry-type (downcase (bibtex-type-in-head))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3505 (setq key (bibtex-key-in-head)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3506 ;; formatting |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3507 (cond ((equal entry-type "preamble") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3508 ;; (bibtex-format-preamble) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3509 (error "No clean up of @Preamble entries")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3510 ((equal entry-type "string")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3511 ;; (bibtex-format-string) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3512 (t (bibtex-format-entry))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3513 ;; set key |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3514 (when (or new-key (not key)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3515 (setq key (bibtex-generate-autokey)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3516 (if bibtex-autokey-edit-before-use |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3517 (setq key (bibtex-read-key "Key to use: " key))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3518 (re-search-forward bibtex-entry-maybe-empty-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3519 (if (match-beginning bibtex-key-in-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3520 (delete-region (match-beginning bibtex-key-in-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3521 (match-end bibtex-key-in-head))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3522 (insert key)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3523 ;; sorting |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3524 (unless called-by-reformat |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3525 (let* ((start (bibtex-beginning-of-entry)) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3526 (end (progn (bibtex-end-of-entry) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3527 (if (re-search-forward |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3528 bibtex-entry-maybe-empty-head nil 'move) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3529 (goto-char (match-beginning 0))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3530 (point))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3531 (entry (buffer-substring start end)) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3532 (index (progn (goto-char start) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3533 (bibtex-entry-index))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3534 no-error) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3535 (if (and bibtex-maintain-sorted-entries |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3536 (not (and bibtex-sort-ignore-string-entries |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3537 (equal entry-type "string")))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3538 (progn |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3539 (delete-region start end) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3540 (setq no-error (bibtex-prepare-new-entry index)) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3541 (insert entry) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3542 (forward-char -1) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3543 (bibtex-beginning-of-entry) ; moves backward |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3544 (re-search-forward bibtex-entry-head)) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3545 (setq no-error (bibtex-find-entry (car index)))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3546 (unless no-error |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3547 (error "New inserted entry yields duplicate key")))) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3548 ;; final clean up |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3549 (unless called-by-reformat |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3550 (save-excursion |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3551 (save-restriction |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3552 (bibtex-narrow-to-entry) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3553 ;; Only update the list of keys if it has been built already. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3554 (cond ((equal entry-type "string") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3555 (if (listp bibtex-strings) (bibtex-parse-strings t))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3556 ((listp bibtex-reference-keys) (bibtex-parse-keys t))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3557 (run-hooks 'bibtex-clean-entry-hook)))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3558 |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3559 (defun bibtex-fill-field-bounds (bounds justify &optional move) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3560 "Fill BibTeX field delimited by BOUNDS. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3561 If JUSTIFY is non-nil justify as well. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3562 If optional arg MOVE is non-nil move point to end of field." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3563 (let ((end-field (copy-marker (bibtex-end-of-field bounds)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3564 (goto-char (bibtex-start-of-field bounds)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3565 (if justify |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3566 (progn |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3567 (forward-char) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3568 (bibtex-delete-whitespace) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3569 (open-line 1) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3570 (forward-char) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3571 (indent-to-column (+ bibtex-entry-offset |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3572 bibtex-field-indentation)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3573 (re-search-forward "[ \t\n]*=" end-field) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3574 (replace-match "=") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3575 (forward-char -1) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3576 (if bibtex-align-at-equal-sign |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3577 (indent-to-column |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3578 (+ bibtex-entry-offset (- bibtex-text-indentation 2))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3579 (insert " ")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3580 (forward-char) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3581 (bibtex-delete-whitespace) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3582 (if bibtex-align-at-equal-sign |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3583 (insert " ") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3584 (indent-to-column bibtex-text-indentation))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3585 (re-search-forward "[ \t\n]*=[ \t\n]*" end-field)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3586 (while (re-search-forward "[ \t\n]+" end-field 'move) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3587 (replace-match " ")) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3588 (do-auto-fill) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3589 (if move (goto-char end-field)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3590 |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3591 (defun bibtex-fill-field (&optional justify) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3592 "Like \\[fill-paragraph], but fill current BibTeX field. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3593 Optional prefix arg JUSTIFY non-nil means justify as well. |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3594 In BibTeX mode this function is bound to `fill-paragraph-function'." |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3595 (interactive "*P") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3596 (let ((pnt (copy-marker (point))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3597 (bounds (bibtex-enclosing-field))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3598 (when bounds |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3599 (bibtex-fill-field-bounds bounds justify) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3600 (goto-char pnt)))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3601 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3602 (defun bibtex-fill-entry () |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3603 "Fill current BibTeX entry. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3604 Realign entry, so that every field starts on a separate line. Field |
| 19461 | 3605 names appear in column `bibtex-field-indentation', field text starts in |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3606 column `bibtex-text-indentation' and continuation lines start here, too. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3607 If `bibtex-align-at-equal-sign' is non-nil, align equal signs, too." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3608 (interactive "*") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3609 (let ((pnt (copy-marker (point))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3610 (end (copy-marker (bibtex-end-of-entry))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3611 bounds) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3612 (bibtex-beginning-of-entry) |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
3613 (bibtex-delete-whitespace) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3614 (indent-to-column bibtex-entry-offset) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3615 (while (setq bounds (bibtex-search-forward-field bibtex-field-name end)) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3616 (bibtex-fill-field-bounds bounds t t)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3617 (if (looking-at ",") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3618 (forward-char)) |
|
18247
ae094c1a4334
(bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents:
18212
diff
changeset
|
3619 (bibtex-delete-whitespace) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3620 (open-line 1) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3621 (forward-char) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3622 (indent-to-column bibtex-entry-offset) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3623 (goto-char pnt))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3624 |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3625 (defun bibtex-realign () |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3626 "Realign BibTeX entries such that they are separated by one blank line." |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3627 (goto-char (point-min)) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3628 (let ((case-fold-search t)) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3629 (when (looking-at bibtex-valid-entry-whitespace-re) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3630 (replace-match "\\1")) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3631 (while (re-search-forward bibtex-valid-entry-whitespace-re nil t) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3632 (replace-match "\n\n\\1")))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3633 |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3634 (defun bibtex-reformat (&optional read-options) |
| 19461 | 3635 "Reformat all BibTeX entries in buffer or region. |
| 3636 With prefix argument, read options for reformatting from minibuffer. | |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3637 With \\[universal-argument] \\[universal-argument] prefix argument, reuse previous answers (if any) again. |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3638 If mark is active reformat entries in region, if not in whole buffer." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3639 (interactive "*P") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3640 (let* ((pnt (point)) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3641 (use-previous-options |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3642 (and (equal (prefix-numeric-value read-options) 16) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3643 (or bibtex-reformat-previous-options |
|
27701
5e135f0faf1d
(bibtex-mode): Replaced manual splitting of path
Gerd Moellmann <gerd@gnu.org>
parents:
26711
diff
changeset
|
3644 bibtex-reformat-previous-reference-keys))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3645 (bibtex-entry-format |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3646 (if read-options |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3647 (if use-previous-options |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3648 bibtex-reformat-previous-options |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3649 (setq bibtex-reformat-previous-options |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3650 (mapcar (lambda (option) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3651 (if (y-or-n-p (car option)) (cdr option))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3652 `(("Realign entries (recommended)? " . 'realign) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3653 ("Remove empty optional and alternative fields? " . 'opts-or-alts) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3654 ("Remove delimiters around pure numerical fields? " . 'numerical-fields) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3655 (,(concat (if bibtex-comma-after-last-field "Insert" "Remove") |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3656 " comma at end of entry? ") . 'last-comma) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3657 ("Replace double page dashes by single ones? " . 'page-dashes) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3658 ("Force delimiters? " . 'delimiters) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3659 ("Unify case of entry types and field names? " . 'unify-case))))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3660 '(realign))) |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3661 (reformat-reference-keys |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3662 (if read-options |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3663 (if use-previous-options |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3664 bibtex-reformat-previous-reference-keys |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3665 (setq bibtex-reformat-previous-reference-keys |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3666 (y-or-n-p "Generate new reference keys automatically? "))))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3667 (start-point (if (bibtex-mark-active) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3668 (region-beginning) |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3669 (point-min))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3670 (end-point (if (bibtex-mark-active) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3671 (region-end) |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3672 (point-max))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3673 (bibtex-sort-ignore-string-entries t) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3674 bibtex-autokey-edit-before-use) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3675 |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3676 (save-restriction |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3677 (narrow-to-region start-point end-point) |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3678 (if (memq 'realign bibtex-entry-format) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3679 (bibtex-realign)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3680 (goto-char start-point) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3681 (bibtex-progress-message "Formatting" 1) |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3682 (bibtex-map-entries (lambda (key beg end) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3683 (bibtex-progress-message) |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3684 (bibtex-clean-entry reformat-reference-keys t))) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3685 (when (memq 'realign bibtex-entry-format) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3686 (bibtex-delete-whitespace) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3687 (open-line (if (eobp) 1 2))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3688 (bibtex-progress-message 'done)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3689 (when (and reformat-reference-keys |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3690 bibtex-maintain-sorted-entries) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3691 (bibtex-progress-message "Sorting" 1) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3692 (bibtex-sort-buffer) |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3693 (kill-local-variable 'bibtex-reference-keys) |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3694 (bibtex-progress-message 'done)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3695 (goto-char pnt))) |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3696 |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3697 (defun bibtex-convert-alien (&optional read-options) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3698 "Convert an alien BibTeX buffer to be fully usable by BibTeX mode. |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3699 If a file does not conform with all standards used by BibTeX mode, |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3700 some of the high-level features of BibTeX mode will not be available. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3701 This function tries to convert current buffer to conform with these standards. |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3702 With prefix argument READ-OPTIONS non-nil, read options for reformatting |
|
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3703 entries from minibuffer." |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3704 (interactive "*P") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3705 (message "Starting to validate buffer...") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3706 (sit-for 1 nil t) |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3707 (bibtex-realign) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3708 (message |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3709 "If errors occur, correct them and call `bibtex-convert-alien' again") |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3710 (sit-for 5 nil t) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3711 (deactivate-mark) ; So bibtex-validate works on the whole buffer. |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3712 (when (let (bibtex-maintain-sorted-entries) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3713 (bibtex-validate)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3714 (message "Starting to reformat entries...") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3715 (sit-for 2 nil t) |
|
55312
3b7a4fa9b2d8
(bibtex-sort-buffer): Remove error message.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52891
diff
changeset
|
3716 (bibtex-reformat read-options) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3717 (goto-char (point-max)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3718 (message "Buffer is now parsable. Please save it."))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3719 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3720 (defun bibtex-complete () |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3721 "Complete word fragment before point according to context. |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3722 If point is inside key or crossref field perform key completion based on |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3723 `bibtex-reference-keys'. Inside any other field perform string |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3724 completion based on `bibtex-strings'. An error is signaled if point |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3725 is outside key or BibTeX field." |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3726 (interactive) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3727 (let* ((pnt (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3728 (case-fold-search t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3729 bounds compl) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3730 (save-excursion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3731 (if (and (setq bounds (bibtex-enclosing-field t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3732 (>= pnt (bibtex-start-of-text-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3733 (<= pnt (bibtex-end-of-text-in-field bounds))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3734 (progn |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3735 (goto-char (bibtex-start-of-name-in-field bounds)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3736 (setq compl (if (string= "crossref" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3737 (downcase |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3738 (buffer-substring-no-properties |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3739 (if (looking-at "\\(OPT\\)\\|\\(ALT\\)") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3740 (match-end 0) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3741 (point)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3742 (bibtex-end-of-name-in-field bounds)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3743 'key |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3744 'str))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3745 (bibtex-beginning-of-entry) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3746 (if (and (re-search-forward bibtex-entry-maybe-empty-head nil t) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3747 ;; point is inside a key |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3748 (or (and (match-beginning bibtex-key-in-head) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3749 (>= pnt (match-beginning bibtex-key-in-head)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3750 (<= pnt (match-end bibtex-key-in-head))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3751 ;; or point is on empty key |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3752 (and (not (match-beginning bibtex-key-in-head)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3753 (= pnt (match-end 0))))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3754 (setq compl 'key)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3755 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3756 (cond ((equal compl 'key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3757 ;; key completion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3758 (setq choose-completion-string-functions |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3759 (lambda (choice buffer mini-p base-size) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3760 (bibtex-choose-completion-string choice buffer mini-p base-size) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3761 (if bibtex-complete-key-cleanup |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3762 (funcall bibtex-complete-key-cleanup choice)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3763 ;; return t (required by choose-completion-string-functions) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3764 t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3765 (let ((choice (bibtex-complete-internal bibtex-reference-keys))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3766 (if bibtex-complete-key-cleanup |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3767 (funcall bibtex-complete-key-cleanup choice)))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3768 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3769 ((equal compl 'str) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3770 ;; string completion |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3771 (setq choose-completion-string-functions |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3772 (lambda (choice buffer mini-p base-size) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3773 (bibtex-choose-completion-string choice buffer mini-p base-size) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3774 (bibtex-complete-string-cleanup choice) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3775 ;; return t (required by choose-completion-string-functions) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3776 t)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3777 (bibtex-complete-string-cleanup (bibtex-complete-internal bibtex-strings))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3778 |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3779 (t (error "Point outside key or BibTeX field"))))) |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3780 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3781 (defun bibtex-Article () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3782 "Insert a new BibTeX @Article entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3783 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3784 (bibtex-entry "Article")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3785 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3786 (defun bibtex-Book () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3787 "Insert a new BibTeX @Book entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3788 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3789 (bibtex-entry "Book")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3790 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3791 (defun bibtex-Booklet () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3792 "Insert a new BibTeX @Booklet entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3793 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3794 (bibtex-entry "Booklet")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3795 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3796 (defun bibtex-InBook () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3797 "Insert a new BibTeX @InBook entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3798 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3799 (bibtex-entry "InBook")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3800 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3801 (defun bibtex-InCollection () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3802 "Insert a new BibTeX @InCollection entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3803 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3804 (bibtex-entry "InCollection")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3805 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3806 (defun bibtex-InProceedings () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3807 "Insert a new BibTeX @InProceedings entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3808 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3809 (bibtex-entry "InProceedings")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3810 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3811 (defun bibtex-Manual () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3812 "Insert a new BibTeX @Manual entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3813 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3814 (bibtex-entry "Manual")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3815 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3816 (defun bibtex-MastersThesis () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3817 "Insert a new BibTeX @MastersThesis entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3818 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3819 (bibtex-entry "MastersThesis")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3820 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3821 (defun bibtex-Misc () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3822 "Insert a new BibTeX @Misc entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3823 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3824 (bibtex-entry "Misc")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3825 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3826 (defun bibtex-PhdThesis () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3827 "Insert a new BibTeX @PhdThesis entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3828 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3829 (bibtex-entry "PhdThesis")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3830 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3831 (defun bibtex-Proceedings () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3832 "Insert a new BibTeX @Proceedings entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3833 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3834 (bibtex-entry "Proceedings")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3835 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3836 (defun bibtex-TechReport () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3837 "Insert a new BibTeX @TechReport entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3838 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3839 (bibtex-entry "TechReport")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3840 |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3841 (defun bibtex-Unpublished () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3842 "Insert a new BibTeX @Unpublished entry; see also `bibtex-entry'." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3843 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3844 (bibtex-entry "Unpublished")) |
|
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3845 |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3846 (defun bibtex-String (&optional key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3847 "Insert a new BibTeX @String entry with key KEY." |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3848 (interactive (list (completing-read "String key: " bibtex-strings |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3849 nil nil nil 'bibtex-key-history))) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3850 (let ((bibtex-maintain-sorted-entries |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3851 (if (not bibtex-sort-ignore-string-entries) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3852 bibtex-maintain-sorted-entries)) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3853 endpos) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3854 (unless (bibtex-prepare-new-entry (list key nil "String")) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3855 (error "Entry with key `%s' already exists" key)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3856 (if (zerop (length key)) (setq key nil)) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3857 (indent-to-column bibtex-entry-offset) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3858 (insert "@String" |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3859 (bibtex-entry-left-delimiter)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3860 (if key |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3861 (insert key) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3862 (setq endpos (point))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3863 (insert " = " |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3864 (bibtex-field-left-delimiter)) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3865 (if key |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3866 (setq endpos (point))) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3867 (insert (bibtex-field-right-delimiter) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3868 (bibtex-entry-right-delimiter) |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3869 "\n") |
|
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3870 (goto-char endpos))) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3871 |
|
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3872 (defun bibtex-Preamble () |
|
22563
2e2a71dfec63
Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents:
21169
diff
changeset
|
3873 "Insert a new BibTeX @Preamble entry." |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3874 (interactive "*") |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3875 (bibtex-move-outside-of-entry) |
|
18212
3864648e9b4f
(bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents:
17700
diff
changeset
|
3876 (indent-to-column bibtex-entry-offset) |
|
51415
762217a72cae
Long overdue merge.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49599
diff
changeset
|
3877 (insert "@Preamble" |
|
51743
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3878 (bibtex-entry-left-delimiter)) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3879 (let ((endpos (point))) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3880 (insert (bibtex-entry-right-delimiter) |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3881 "\n") |
|
f63c242330b2
2003-06-30 Roland Winkler <Roland.Winkler@physik.uni-erlangen.de>
Kai Gro?johann <kgrossjo@eu.uu.net>
parents:
51416
diff
changeset
|
3882 (goto-char endpos))) |
| 257 | 3883 |
| 3884 | |
|
12700
b3a8ee2da96a
Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents:
12028
diff
changeset
|
3885 ;; Make BibTeX a Feature |
| 257 | 3886 |
|
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
3887 (provide 'bibtex) |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
3888 |
| 52401 | 3889 ;;; arch-tag: ee2be3af-caad-427f-b42a-d20fad630d04 |
|
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
3890 ;;; bibtex.el ends here |
