annotate lisp/textmodes/bibtex.el @ 25444:37b1636d73d5

(bibtex-mode): Use with-temp-buffer rather than make-temp-name, use match-string-no-properties, and eliminate a quadratic behavior when building bibtex-strings.
author Richard M. Stallman <rms@gnu.org>
date Sun, 29 Aug 1999 21:20:20 +0000
parents 8de3e729a7b3
children eac840d283b6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
18248
4518d1520edb Update copyright year.
Richard M. Stallman <rms@gnu.org>
parents: 18247
diff changeset
3 ;; Copyright (C) 1992, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 810
diff changeset
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>
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
6 ;; Bengt Martensson <bengt@mathematik.uni-Bremen.de>
810
80303373daae *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
7 ;; Mark Shapiro <shapiro@corto.inria.fr>
80303373daae *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
8 ;; Mike Newton <newton@gumby.cs.caltech.edu>
80303373daae *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
9 ;; Aaron Larson <alarson@src.honeywell.com>
20359
7fca0e4ce5e8 (bibtex-maintainer-address, bibtex-submit-bug-report):
Richard M. Stallman <rms@gnu.org>
parents: 19638
diff changeset
10 ;; Maintainer: Dirk Herrmann <D.Herrmann@tu-bs.de>
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
11 ;; Keywords: BibTeX, LaTeX, TeX
810
80303373daae *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
12
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 ;; This file is part of GNU Emacs.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 ;; GNU Emacs is free software; you can redistribute it and/or modify
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 ;; it under the terms of the GNU General Public License as published by
1851
b3ce1eae3eb0 Update GPL version.
Richard M. Stallman <rms@gnu.org>
parents: 845
diff changeset
17 ;; the Free Software Foundation; either version 2, or (at your option)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 ;; any later version.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20 ;; GNU Emacs is distributed in the hope that it will be useful,
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 ;; GNU General Public License for more details.
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13968
diff changeset
26 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13968
diff changeset
27 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13968
diff changeset
28 ;; Boston, MA 02111-1307, USA.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
30 ;;; Commentary:
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13968
diff changeset
31
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
32 ;; Major mode for editing and validating BibTeX files.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
34 ;; Usage:
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
35 ;; See documentation for function bibtex-mode (or type "\M-x describe-mode"
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
36 ;; 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
37
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
38 ;; Todo:
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
39 ;; Distribute texinfo file.
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
40
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
41 ;;; Code:
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
42
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
43 (eval-when-compile
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
44 (require 'compile))
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13968
diff changeset
45
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
46 ;; User Options:
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
47
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
48 (defgroup bibtex nil
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
49 "BibTeX mode."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
50 :group 'tex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
51 :prefix "bibtex-")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
52
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
53 (defgroup bibtex-autokey nil
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
54 "Generates automatically a key from the author/editor and the title field"
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
55 :group 'bibtex
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
56 :prefix "bibtex-autokey-")
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
57
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
58 (defcustom bibtex-mode-hook nil
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
59 "List of functions to call on entry to BibTeX mode."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
60 :group 'bibtex
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
61 :type 'hook)
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
62
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
63 (defcustom bibtex-field-delimiters 'braces
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
64 "*Controls type of field delimiters used.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
65 Set this to `braces' or `double-quotes' according to your personal
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
66 preferences. This variable is buffer-local."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
67 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
68 :type '(choice (const braces)
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
69 (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
70 (make-variable-buffer-local 'bibtex-field-delimiters)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
71
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
72 (defcustom bibtex-entry-delimiters 'braces
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
73 "*Controls type of entry delimiters used.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
74 Set this to `braces' or `parentheses' according to your personal
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
75 preferences. This variable is buffer-local."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
76 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
77 :type '(choice (const braces)
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
78 (const parentheses)))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
79 (make-variable-buffer-local 'bibtex-entry-delimiters)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
80
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
81 (defcustom bibtex-include-OPTcrossref '("InProceedings" "InCollection")
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
82 "*All entries listed here will have an OPTcrossref field."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
83 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
84 :type '(repeat string))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
85
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
86 (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
87 "*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
88 If this is a string, it will be used as the initial field text.
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
89 If this is a function, it will be called to generate the initial field text."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
90 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
91 :type '(choice (const :tag "None" nil)
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
92 (string :tag "Initial text")
22599
a9b371a8e835 (bibtex-include-OPTkey): Use `other' widget
Andreas Schwab <schwab@suse.de>
parents: 22563
diff changeset
93 (function :tag "Initialize Function" :value fun)
a9b371a8e835 (bibtex-include-OPTkey): Use `other' widget
Andreas Schwab <schwab@suse.de>
parents: 22563
diff changeset
94 (other :tag "Default" t)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
95
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
96 (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
97 '(("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
98 "*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
99 Entries should be of the same form as the OPTIONAL and
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
100 CROSSREF-OPTIONAL lists in `bibtex-entry-field-alist' (see documentation
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
101 of this variable for details)."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
102 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
103 :type '(repeat
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
104 (group (string :tag "Field")
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
105 (string :tag "Comment")
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
106 (option (group :inline t
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
107 :extra-offset -4
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
108 (choice :tag "Init" :value ""
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
109 string
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
110 function))))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
111
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
112 (defcustom bibtex-entry-format '(opts-or-alts numerical-fields)
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
113 "*Controls type of formatting performed by `bibtex-clean-entry'.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
114 It may be t, nil, or a list of symbols out of the following:
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
115 opts-or-alts Delete empty optional and alternative fields and
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
116 remove OPT and ALT prefixes from used fields.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
117 numerical-fields Delete delimiters around numeral fields.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
118 page-dashes Change double dashes in page field to single dash
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
119 (for scribe compatibility).
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
120 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
121 field is empty, it is set to the contents of the
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
122 title field of the crossreferenced entry.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
123 Caution: this will work only if buffer is
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
124 correctly sorted.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
125 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
126 signs (depending on the value of
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
127 `bibtex-align-at-equal-sign') begin in the same column.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
128 last-comma Add or delete comma on end of last field in entry,
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
129 according to value of `bibtex-comma-after-last-field'.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
130 delimiters Change delimiters according to variables
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
131 `bibtex-field-delimiters' and `bibtex-entry-delimiters'.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
132 unify-case Change case of entry and field names.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
133
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
134 The value t means do all of the above formatting actions.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
135 The value nil means do no formatting at all."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
136 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
137 :type '(choice (const :tag "None" nil)
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
138 (const :tag "All" t)
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
139 (set :menu-tag "Some"
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
140 (const opts-or-alts)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
141 (const numerical-fields)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
142 (const page-dashes)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
143 (const inherit-booktitle)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
144 (const realign)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
145 (const last-comma)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
146 (const delimiters)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
147 (const unify-case))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
148
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
149 (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
150 "*List of functions to call when entry has been cleaned.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
151 Functions are called with point inside the cleaned entry, and the buffer
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
152 narrowed to just the entry."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
153 :group 'bibtex
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
154 :type 'hook)
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
155
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
156 (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
157 "*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
158 That means they are ignored when determining ordering of the buffer
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
159 (e.g., sorting, locating alphabetical position for new entries, etc.).
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
160 This variable is buffer-local."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
161 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
162 :type 'boolean)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
163 (make-variable-buffer-local 'bibtex-sort-ignore-string-entries)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
164
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
165 (defcustom bibtex-maintain-sorted-entries nil
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
166 "*If non-nil, BibTeX mode maintains all BibTeX entries in sorted order.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
167 Setting this variable to nil will strip off some comfort (e.g., TAB
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
168 completion for reference keys in minibuffer, automatic detection of
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
169 duplicates) from BibTeX mode. See also `bibtex-sort-ignore-string-entries'.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
170 This variable is buffer-local."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
171 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
172 :type 'boolean)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
173 (make-variable-buffer-local 'bibtex-maintain-sorted-entries)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
174
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
175 (defcustom bibtex-field-kill-ring-max 20
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
176 "*Max length of `bibtex-field-kill-ring' before discarding oldest elements."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
177 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
178 :type 'integer)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
179
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
180 (defcustom bibtex-entry-kill-ring-max 20
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
181 "*Max length of `bibtex-entry-kill-ring' before discarding oldest elements."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
182 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
183 :type 'integer)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
184
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
185 (defcustom bibtex-parse-keys-timeout 60
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
186 "*Specifies interval for parsing buffers.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
187 All BibTeX buffers in Emacs are parsed if Emacs has been idle
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
188 `bibtex-parse-keys-timeout' seconds. Only buffers which were modified
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
189 after last parsing and which are maintained in sorted order are parsed."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
190 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
191 :type 'integer)
15637
405b1ecbf8ba (bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents: 15565
diff changeset
192
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
193 (defvar bibtex-entry-field-alist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
194 '(
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
195 ("Article" . (((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
196 ("title" "Title of the article (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
197 ("journal" "Name of the journal (use string, remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
198 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
199 (("volume" "Volume of the journal")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
200 ("number" "Number of the journal (only allowed if entry contains volume)")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
201 ("pages" "Pages in the journal")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
202 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
203 ("note" "Remarks to be put at the end of the \\bibitem")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
204 ((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
205 ("title" "Title of the article (BibTeX converts it to lowercase)"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
206 (("pages" "Pages in the journal")
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
207 ("journal" "Name of the journal (use string, remove braces)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
208 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
209 ("volume" "Volume of the journal")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
210 ("number" "Number of the journal")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
211 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
212 ("note" "Remarks to be put at the end of the \\bibitem")))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
213 ("Book" . (((("author" "Author1 [and Author2 ...] [and others]" "" t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
214 ("editor" "Editor1 [and Editor2 ...] [and others]" "" t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
215 ("title" "Title of the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
216 ("publisher" "Publishing company")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
217 ("year" "Year of publication"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
218 (("volume" "Volume of the book in the series")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
219 ("number" "Number of the book in a small series (overwritten by volume)")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
220 ("series" "Series in which the book appeared")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
221 ("address" "Address of the publisher")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
222 ("edition" "Edition of the book as a capitalized English word")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
223 ("month" "Month of the publication as a string (remove braces)")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
224 ("note" "Remarks to be put at the end of the \\bibitem")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
225 ((("author" "Author1 [and Author2 ...] [and others]" "" t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
226 ("editor" "Editor1 [and Editor2 ...] [and others]" "" t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
227 ("title" "Title of the book"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
228 (("publisher" "Publishing company")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
229 ("year" "Year of publication")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
230 ("volume" "Volume of the book in the series")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
231 ("number" "Number of the book in a small series (overwritten by volume)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
232 ("series" "Series in which the book appeared")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
233 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
234 ("edition" "Edition of the book as a capitalized English word")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
235 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
236 ("note" "Remarks to be put at the end of the \\bibitem")))))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
237 ("Booklet" . (((("title" "Title of the booklet (BibTeX converts it to lowercase)"))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
238 (("author" "Author1 [and Author2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
239 ("howpublished" "The way in which the booklet was published")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
240 ("address" "Address of the publisher")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
241 ("month" "Month of the publication as a string (remove braces)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
242 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
243 ("note" "Remarks to be put at the end of the \\bibitem")))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
244 ("InBook" . (((("author" "Author1 [and Author2 ...] [and others]" "" t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
245 ("editor" "Editor1 [and Editor2 ...] [and others]" "" t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
246 ("title" "Title of the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
247 ("chapter" "Chapter in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
248 ("publisher" "Publishing company")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
249 ("year" "Year of publication"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
250 (("volume" "Volume of the book in the series")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
251 ("number" "Number of the book in a small series (overwritten by volume)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
252 ("series" "Series in which the book appeared")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
253 ("type" "Word to use instead of \"chapter\"")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
254 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
255 ("edition" "Edition of the book as a capitalized English word")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
256 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
257 ("pages" "Pages in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
258 ("note" "Remarks to be put at the end of the \\bibitem")))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
259 ((("author" "Author1 [and Author2 ...] [and others]" "" t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
260 ("editor" "Editor1 [and Editor2 ...] [and others]" "" t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
261 ("title" "Title of the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
262 ("chapter" "Chapter in the book"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
263 (("pages" "Pages in the book")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
264 ("publisher" "Publishing company")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
265 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
266 ("volume" "Volume of the book in the series")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
267 ("number" "Number of the book in a small series (overwritten by volume)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
268 ("series" "Series in which the book appeared")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
269 ("type" "Word to use instead of \"chapter\"")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
270 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
271 ("edition" "Edition of the book as a capitalized English word")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
272 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
273 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
274 ("InCollection" . (((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
275 ("title" "Title of the article in book (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
276 ("booktitle" "Name of the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
277 ("publisher" "Publishing company")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
278 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
279 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
280 ("volume" "Volume of the book in the series")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
281 ("number" "Number of the book in a small series (overwritten by volume)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
282 ("series" "Series in which the book appeared")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
283 ("type" "Word to use instead of \"chapter\"")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
284 ("chapter" "Chapter in the book")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
285 ("pages" "Pages in the book")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
286 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
287 ("edition" "Edition of the book as a capitalized English word")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
288 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
289 ("note" "Remarks to be put at the end of the \\bibitem")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
290 ((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
291 ("title" "Title of the article in book (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
292 ("booktitle" "Name of the book"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
293 (("pages" "Pages in the book")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
294 ("publisher" "Publishing company")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
295 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
296 ("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
297 ("volume" "Volume of the book in the series")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
298 ("number" "Number of the book in a small series (overwritten by volume)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
299 ("series" "Series in which the book appeared")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
300 ("type" "Word to use instead of \"chapter\"")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
301 ("chapter" "Chapter in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
302 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
303 ("edition" "Edition of the book as a capitalized English word")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
304 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
305 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
306 ("InProceedings" . (((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
307 ("title" "Title of the article in proceedings (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
308 ("booktitle" "Name of the conference proceedings")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
309 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
310 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
311 ("volume" "Volume of the conference proceedings in the series")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
312 ("number" "Number of the conference proceedings in a small series (overwritten by volume)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
313 ("series" "Series in which the conference proceedings appeared")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
314 ("pages" "Pages in the conference proceedings")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
315 ("address" "Location of the Proceedings")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
316 ("month" "Month of the publication as a string (remove braces)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
317 ("organization" "Sponsoring organization of the conference")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
318 ("publisher" "Publishing company, its location")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
319 ("note" "Remarks to be put at the end of the \\bibitem")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
320 ((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
321 ("title" "Title of the article in proceedings (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
322 ("booktitle" "Name of the conference proceedings"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
323 (("pages" "Pages in the conference proceedings")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
324 ("year" "Year of publication")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
325 ("editor" "Editor1 [and Editor2 ...] [and others]")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
326 ("volume" "Volume of the conference proceedings in the series")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
327 ("number" "Number of the conference proceedings in a small series (overwritten by volume)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
328 ("series" "Series in which the conference proceedings appeared")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
329 ("address" "Location of the Proceedings")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
330 ("month" "Month of the publication as a string (remove braces)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
331 ("organization" "Sponsoring organization of the conference")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
332 ("publisher" "Publishing company, its location")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
333 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
334 ("Manual" . (((("title" "Title of the manual"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
335 (("author" "Author1 [and Author2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
336 ("organization" "Publishing organization of the manual")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
337 ("address" "Address of the organization")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
338 ("edition" "Edition of the manual as a capitalized English word")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
339 ("month" "Month of the publication as a string (remove braces)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
340 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
341 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
342 ("MastersThesis" . (((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
343 ("title" "Title of the master\'s thesis (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
344 ("school" "School where the master\'s thesis was written")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
345 ("year" "Year of publication"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
346 (("type" "Type of the master\'s thesis (if other than \"Master\'s thesis\")")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
347 ("address" "Address of the school (if not part of field \"school\") or country")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
348 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
349 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
350 ("Misc" . ((()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
351 (("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
352 ("title" "Title of the reference (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
353 ("howpublished" "The way in which the reference was published")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
354 ("month" "Month of the publication as a string (remove braces)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
355 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
356 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
357 ("PhdThesis" . (((("author" "Author1 [and Author2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
358 ("title" "Title of the PhD. thesis")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
359 ("school" "School where the PhD. thesis was written")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
360 ("year" "Year of publication"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
361 (("type" "Type of the PhD. thesis")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
362 ("address" "Address of the school (if not part of field \"school\") or country")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
363 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
364 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
365 ("Proceedings" . (((("title" "Title of the conference proceedings")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
366 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
367 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
368 ("volume" "Volume of the conference proceedings in the series")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
369 ("number" "Number of the conference proceedings in a small series (overwritten by volume)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
370 ("series" "Series in which the conference proceedings appeared")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
371 ("address" "Location of the Proceedings")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
372 ("month" "Month of the publication as a string (remove braces)")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
373 ("organization" "Sponsoring organization of the conference")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
374 ("publisher" "Publishing company, its location")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
375 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
376 ("TechReport" . (((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
377 ("title" "Title of the technical report (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
378 ("institution" "Sponsoring institution of the report")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
379 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
380 (("type" "Type of the report (if other than \"technical report\")")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
381 ("number" "Number of the technical report")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
382 ("address" "Address of the institution (if not part of field \"institution\") or country")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
383 ("month" "Month of the publication as a string (remove braces)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
384 ("note" "Remarks to be put at the end of the \\bibitem")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
385 ("Unpublished" . (((("author" "Author1 [and Author2 ...] [and others]")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
386 ("title" "Title of the unpublished reference (BibTeX converts it to lowercase)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
387 ("note" "Remarks to be put at the end of the \\bibitem"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
388 (("month" "Month of the publication as a string (remove braces)")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
389 ("year" "Year of publication")))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
390 )
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
391
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
392 "Defines reference types and their associated fields.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
393 List of
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
394 (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
395 triples.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
396 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
397 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
398 field and the third in the case of absence.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
399 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
400 Each element of these lists is a list of the form
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
401 (FIELD-NAME COMMENT-STRING INIT ALTERNATIVE-FLAG).
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
402 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
403 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
404 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
405 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
406 of the field, and ALTERNATIVE-FLAG (either nil or t) marks if the
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
407 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
408 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
409
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
410 (defvar bibtex-comment-start "@Comment ")
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
411
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
412 (defcustom bibtex-add-entry-hook nil
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
413 "List of functions to call when entry has been inserted."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
414 :group 'bibtex
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
415 :type 'hook)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
416
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
417 (defcustom bibtex-predefined-month-strings
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
418 '(
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
419 ("jan") ("feb") ("mar") ("apr") ("may") ("jun")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
420 ("jul") ("aug") ("sep") ("oct") ("nov") ("dec")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
421 )
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
422 "Alist of month string definitions.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
423 Should contain all strings used for months in the BibTeX style files.
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
424 Each element is a list with just one element: the string."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
425 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
426 :type '(repeat
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
427 (list string)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
428
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
429 (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
430 (append
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
431 bibtex-predefined-month-strings
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
432 '(
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
433 ("acmcs") ("acta") ("cacm") ("ibmjrd") ("ibmsj") ("ieeese")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
434 ("ieeetc") ("ieeetcad") ("ipl") ("jacm") ("jcss") ("scp")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
435 ("sicomp") ("tcs") ("tocs") ("tods") ("tog") ("toms") ("toois")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
436 ("toplas")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
437 ))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
438 "Alist of string definitions.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
439 Should contain the strings defined in the BibTeX style files. Each
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
440 element is a list with just one element: the string."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
441 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
442 :type '(repeat
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
443 (list string)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
444
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
445 (defcustom bibtex-string-files nil
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
446 "*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
447 Those files must be specified using pathnames relative to the
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
448 directories specified in `bibtex-string-file-path'. This variable is only
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
449 evaluated when BibTeX mode is entered (i.e., when loading the BibTeX
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
450 file)."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
451 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
452 :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
453
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
454 (defvar bibtex-string-file-path (getenv "BIBINPUTS")
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
455 "*Colon separated list of pathes 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
456
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
457 (defcustom bibtex-help-message t
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
458 "*If not nil print help messages in the echo area on entering a new field."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
459 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
460 :type 'boolean)
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
461
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
462 (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
463 "*String to use as a prefix for all generated keys.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
464 See the documentation of function `bibtex-generate-autokey' for more detail."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
465 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
466 :type 'string)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
467
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
468 (defcustom bibtex-autokey-names 1
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
469 "*Number of names to use for the automatically generated reference key.
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
470 If this is variable is nil, all names are used.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
471 Possibly more names are used according to `bibtex-autokey-names-stretch'.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
472 See the documentation of function `bibtex-generate-autokey' for more detail."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
473 :group 'bibtex-autokey
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
474 :type '(choice (const :tag "All" infty)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
475 integer))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
476
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
477 (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
478 "*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
479 These names are used only, if all names are used then.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
480 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
481 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
482 :type 'integer)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
483
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
484 (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
485 "*String to prepend to the generated key if not all names could be used.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
486 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
487 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
488 :type 'string)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
489
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
490 (defvar bibtex-autokey-transcriptions
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
491 '(
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
492 ;; language specific characters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
493 ("\\\\aa" "a")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
494 ("\\\\AA" "A")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
495 ("\\\"a\\|\\\\\\\"a\\|\\\\ae" "ae")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
496 ("\\\"A\\|\\\\\\\"A\\|\\\\AE" "Ae")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
497 ("\\\\i" "i")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
498 ("\\\\j" "j")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
499 ("\\\\l" "l")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
500 ("\\\\L" "L")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
501 ("\\\"o\\|\\\\\\\"o\\|\\\\o\\|\\\\oe" "oe")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
502 ("\\\"O\\|\\\\\\\"O\\|\\\\O\\|\\\\OE" "Oe")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
503 ("\\\"s\\|\\\\\\\"s" "ss")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
504 ("\\\"u\\|\\\\\\\"u" "ue")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
505 ("\\\"U\\|\\\\\\\"U" "Ue")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
506 ;; accents
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
507 ("\\\\`\\|\\\\'\\|\\\\\\^\\|\\\\~\\|\\\\=\\|\\\\\\.\\|\\\\u\\|\\\\v\\|\\\\H\\|\\\\t\\|\\\\c\\|\\\\d\\|\\\\b" "")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
508 ;; braces
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
509 ("{" "") ("}" ""))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
510 "Alist of (old-regexp new-string) pairs.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
511 Used by the default values of `bibtex-autokey-name-change-strings' and
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
512 `bibtex-autokey-titleword-change-strings'. Defaults to translating some
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
513 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
514 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
515
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
516 (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
517 bibtex-autokey-transcriptions
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
518 "Alist of (OLD-REGEXP NEW-STRING) pairs.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
519 Any part of name matching a OLD-REGEXP is replaced by NEW-STRING.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
520 Case is significant in OLD-REGEXP. All regexps are tried in the
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
521 order in which they appear in the list, so be sure to avoid inifinite
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
522 loops here.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
523 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
524 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
525 :type '(repeat
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
526 (list (regexp :tag "Old")
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
527 (string :tag "New"))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
528
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
529 (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
530 "*Function called for each name to perform case conversion.
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
531 See the documentation of function `bibtex-generate-autokey' for more detail."
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
532 :group 'bibtex-autokey
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
533 :type '(choice (const :tag "Preserve case" identity)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
534 (const :tag "Downcase" downcase)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
535 (const :tag "Capitalize" capitalize)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
536 (const :tag "Upcase" upcase)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
537 (function :tag "Conversion function")))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
538
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
539 (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
540 "*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
541 If this is set to anything but a number, all characters are used.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
542 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
543 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
544 :type '(choice (const :tag "All" infty)
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
545 integer))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
546
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
547 (defcustom bibtex-autokey-name-separator ""
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
548 "*String that comes between any two names in the key.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
549 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
550 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
551 :type 'string)
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
552
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
553 (defcustom bibtex-autokey-year-length 2
20866
2501e131622d (bibtex-autokey-year-length): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents: 20459
diff changeset
554 "*Number of rightmost digits from the year field to incorporate into key.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
555 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
556 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
557 :type 'integer)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
558
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
559 (defcustom bibtex-autokey-year-use-crossref-entry t
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
560 "*If non-nil use year field from crossreferenced entry if necessary.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
561 If this variable is non-nil and the current entry has no year, but a
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
562 valid crossref entry, the year field from the crossreferenced entry is
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
563 used.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
564 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
565 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
566 :type 'boolean)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
567
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
568 (defcustom bibtex-autokey-titlewords 5
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
569 "*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
570 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
571 Possibly more words from the title are used according to
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
572 `bibtex-autokey-titlewords-stretch'.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
573 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
574 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
575 :type '(choice (const :tag "All" infty)
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
576 integer))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
577
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
578 (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
579 '("\\." "!" "\\?" ":" ";" "--")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
580 "*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
581 Case of the regexps is ignored.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
582 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
583 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
584 :type '(repeat regexp))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
585
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
586 (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
587 "*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
588 These words are used only, if a sentence from the title can be ended then.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
589 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
590 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
591 :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
592
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
593 (defcustom bibtex-autokey-titleword-ignore
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
594 '("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
595 "[^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
596 "*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
597 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
598 regexp from that list, it is not included in the title part of the key.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
599 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
600 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
601 :type '(repeat regexp))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
602
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
603 (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
604 "*Function called for each titleword to perform case conversion.
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
605 See the documentation of function `bibtex-generate-autokey' for more detail."
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
606 :group 'bibtex-autokey
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
607 :type '(choice (const :tag "Preserve case" identity)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
608 (const :tag "Downcase" downcase)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
609 (const :tag "Capitalize" capitalize)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
610 (const :tag "Upcase" upcase)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
611 (function :tag "Conversion function")))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
612
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
613 (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
614 "*Determines exceptions to the usual abbreviation mechanism.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
615 An alist of (OLD-REGEXP NEW-STRING) pairs. Case is ignored
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
616 in matching against OLD-REGEXP, and the first matching pair is used.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
617 See the documentation of function `bibtex-generate-autokey' for details.")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
618
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
619 (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
620 bibtex-autokey-transcriptions
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
621 "Alist of (OLD-REGEXP NEW-STRING) pairs.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
622 Any part of title word matching a OLD-REGEXP is replaced by NEW-STRING.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
623 Case is significant in OLD-REGEXP. All regexps are tried in the
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
624 order in which they appear in the list, so be sure to avoid inifinite
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
625 loops here.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
626 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
627 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
628 :type '(repeat
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
629 (list (regexp :tag "Old")
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
630 (string :tag "New"))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
631
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
632 (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
633 "*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
634 If this is set to anything but a number, all characters are used.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
635 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
636 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
637 :type '(choice (const :tag "All" infty)
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
638 integer))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
639
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
640 (defcustom bibtex-autokey-titleword-separator "_"
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
641 "*String to be put between the title words.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
642 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
643 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
644 :type 'string)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
645
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
646 (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
647 "*String to be put between name part and year part of key.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
648 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
649 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
650 :type 'string)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
651
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
652 (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
653 "*String to be put between name part and year part of key.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
654 See the documentation of function `bibtex-generate-autokey' for details."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
655 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
656 :type 'string)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
657
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
658 (defcustom bibtex-autokey-edit-before-use t
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
659 "*If non-nil, user is allowed to edit the generated key before it is used."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
660 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
661 :type 'boolean)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
662
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
663 (defcustom bibtex-autokey-before-presentation-function nil
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
664 "Function to call before the generated key is presented.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
665 If non-nil this should be a single function, which is called before
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
666 the generated key is presented (in entry or, if
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
667 `bibtex-autokey-edit-before-use' is t, in minibuffer). This function
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
668 must take one argument (the automatically generated key), and must
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
669 return with a string (the key to use)."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
670 :group 'bibtex-autokey
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
671 :type 'function)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
672
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
673 (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
674 "*Offset for BibTeX entries.
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
675 Added to the value of all other variables which determine colums."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
676 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
677 :type 'integer)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
678
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
679 (defcustom bibtex-field-indentation 2
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
680 "*Starting column for the name part in BibTeX fields."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
681 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
682 :type 'integer)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
683
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
684 (defcustom 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
685 (+
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
686 bibtex-field-indentation
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
687 (length "organization = "))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
688 "*Starting column for the text part in BibTeX fields.
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
689 Should be equal to the space needed for the longest name part."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
690 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
691 :type 'integer)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
692
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
693 (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
694 (+ bibtex-text-indentation 1)
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
695 "*Starting column for continuation lines of BibTeX fields."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
696 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
697 :type 'integer)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
698
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
699 (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
700 "*If non-nil, align fields at equal sign instead of field text.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
701 If non-nil, the column for the equal sign is
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
702 the value of `bibtex-text-indentation', minus 2."
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
703 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
704 :type 'boolean)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
705
19460
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
706 (defcustom bibtex-comma-after-last-field nil
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
707 "*If non-nil, a comma is put at end of last field in the entry template."
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
708 :group 'bibtex
f15d80b084d8 Customized.
Richard M. Stallman <rms@gnu.org>
parents: 18502
diff changeset
709 :type 'boolean)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
710
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
711 ;; 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
712 ;; 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
713 ;; section of this file, it is defined later.
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
714
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
715 ;; Special support taking care of variants
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
716 (if (boundp 'mark-active)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
717 (defun bibtex-mark-active ()
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
718 ;; In Emacs mark-active indicates if mark is active.
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
719 mark-active)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
720 (defun bibtex-mark-active ()
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
721 ;; In XEmacs (mark) returns nil when not active.
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
722 (if zmacs-regions (mark) (mark t))))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
723
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
724 (if (fboundp 'run-with-idle-timer)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
725 ;; timer.el is distributed with Emacs
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
726 (fset 'bibtex-run-with-idle-timer 'run-with-idle-timer)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
727 ;; timer.el is not distributed with XEmacs
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
728 ;; Notice that this does not (yet) pass the arguments, but they
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
729 ;; are not used (yet) in bibtex.el. Fix if needed.
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
730 (defun bibtex-run-with-idle-timer (secs repeat function &rest args)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
731 (start-itimer "bibtex" function secs (if repeat secs nil) t)))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
732
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
733
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
734 ;; 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
735 (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
736 (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
737 (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
738 (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
739 (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
740 (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
741 (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
742 (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
743 (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
744 (modify-syntax-entry ?\n "> " 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
745 (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
746 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
747
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
748 (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
749 (let ((km (make-sparse-keymap)))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
750 (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
751 (define-key km "\n" 'bibtex-next-field)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
752 (define-key km "\M-\t" 'bibtex-complete-string)
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
753 (define-key km [(meta tab)] 'bibtex-complete-key)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
754 (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
755 (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
756 (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
757 (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
758 (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
759 (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
760 (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
761 (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
762 (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
763 (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
764 (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
765 (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
766 (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
767 (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
768 (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
769 (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
770 (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
771 (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
772 (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
773 (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
774 (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
775 (define-key km "\C-c\C-b" 'bibtex-entry)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
776 (define-key km "\C-c\C-t" 'bibtex-hide-entry-bodies)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
777 (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
778 (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
779 (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
780 (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
781 (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
782 (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
783 (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
784 (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
785 (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
786 (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
787 (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
788 (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
789 (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
790 (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
791 (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
792 (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
793 (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
794 (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
795 (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
796 (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
797 (define-key km "\C-c\C-e\C-u" 'bibtex-Unpublished)
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
798 km))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
799
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
800 (easy-menu-define
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
801 bibtex-edit-menu bibtex-mode-map "BibTeX-Edit Menu in BibTeX mode"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
802 '("BibTeX-Edit"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
803 ("Moving inside an Entry"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
804 ["End of Field" bibtex-find-text t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
805 ["Next Field" bibtex-next-field t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
806 ["Beginning of Entry" bibtex-beginning-of-entry t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
807 ["End of Entry" bibtex-end-of-entry t])
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
808 ("Operating on Current Entry"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
809 ["Fill Entry" bibtex-fill-entry t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
810 ["Clean Entry" bibtex-clean-entry t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
811 "--"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
812 ["Kill Entry" 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
813 ["Copy Entry to Kill Ring" bibtex-copy-entry-as-kill t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
814 ["Paste Most Recently Killed Entry" bibtex-yank t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
815 ["Paste Previously Killed Entry" bibtex-yank-pop t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
816 "--"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
817 ["Ispell Entry" bibtex-ispell-entry t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
818 ["Ispell Entry Abstract" bibtex-ispell-abstract t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
819 ["Narrow to Entry" bibtex-narrow-to-entry t])
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
820 ("Operating on Current Field"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
821 ["Remove Delimiters" bibtex-remove-delimiters t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
822 ["Remove OPT or ALT Prefix" bibtex-remove-OPT-or-ALT t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
823 ["Clear Field" bibtex-empty-field t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
824 "--"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
825 ["Kill Field" 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
826 ["Copy Field to Kill Ring" bibtex-copy-field-as-kill t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
827 ["Paste Most Recently Killed Field" bibtex-yank t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
828 ["Paste Previously Killed Field" bibtex-yank-pop t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
829 "--"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
830 ["Make New Field" bibtex-make-field t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
831 "--"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
832 ["Snatch from Similar Following Field" bibtex-pop-next t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
833 ["Snatch from Similar Preceding Field" bibtex-pop-previous t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
834 "--"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
835 ["String Complete" bibtex-complete-string t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
836 ["Key Complete" bibtex-complete-key t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
837 "--"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
838 ["Help about Current Field" bibtex-print-help-message t])
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
839 ("Operating on Buffer or Region"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
840 ["Validate Entries" bibtex-validate t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
841 ["Sort Entries" bibtex-sort-buffer t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
842 ["Reformat Entries" bibtex-reformat t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
843 ["Hide Entry Bodies" bibtex-hide-entry-bodies t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
844 ["Count Entries" bibtex-count-entries t])
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
845 ("Miscellaneous"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
846 ["Convert Alien Buffer" bibtex-convert-alien t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
847 ["Submit Bug Report" bibtex-submit-bug-report 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
848
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
849 (easy-menu-define
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
850 bibtex-entry-menu bibtex-mode-map "Entry-Types Menu in BibTeX mode"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
851 (list "Entry-Types"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
852 ["Article in Journal" bibtex-Article t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
853 ["Article in Conference Proceedings" bibtex-InProceedings t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
854 ["Article in a Collection" bibtex-InCollection t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
855 ["Chapter or Pages in a Book" bibtex-InBook t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
856 ["Conference Proceedings" bibtex-Proceedings t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
857 ["Book" bibtex-Book t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
858 ["Booklet (Bound, but no Publisher/Institution)" bibtex-Booklet t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
859 ["PhD. Thesis" bibtex-PhdThesis t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
860 ["Master's Thesis" bibtex-MastersThesis t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
861 ["Technical Report" bibtex-TechReport t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
862 ["Technical Manual" bibtex-Manual t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
863 ["Unpublished" bibtex-Unpublished t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
864 ["Miscellaneous" bibtex-Misc t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
865 ["String" bibtex-String t]
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
866 ["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
867
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
868
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
869 ;; Bug Reporting
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
870
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
871 (defconst
20359
7fca0e4ce5e8 (bibtex-maintainer-address, bibtex-submit-bug-report):
Richard M. Stallman <rms@gnu.org>
parents: 19638
diff changeset
872 bibtex-maintainer-address "Dirk Herrmann <D.Herrmann@tu-bs.de>")
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
873 ;; current maintainer
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
874
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
875
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
876 ;; 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
877
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
878 (defvar bibtex-pop-previous-search-point nil)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
879 ;; Next point where bibtex-pop-previous starts looking for a similar
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
880 ;; entry.
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
881
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
882 (defvar bibtex-pop-next-search-point nil)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
883 ;; Next point where bibtex-pop-next starts looking for a similar entry.
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
884
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
885 (defvar bibtex-field-kill-ring nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
886 ;; Ring of least recently killed fields. At most
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
887 ;; bibtex-field-kill-ring-max items are kept here.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
888
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
889 (defvar bibtex-field-kill-ring-yank-pointer nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
890 ;; The tail of bibtex-field-kill-ring whose car is the last item yanked.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
891
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
892 (defvar bibtex-entry-kill-ring nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
893 ;; Ring of least recently killed entries. At most
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
894 ;; bibtex-entry-kill-ring-max items are kept here.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
895
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
896 (defvar bibtex-entry-kill-ring-yank-pointer nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
897 ;; The tail of bibtex-entry-kill-ring whose car is the last item yanked.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
898
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
899 (defvar bibtex-last-kill-command nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
900 ;; Holds the type of the last kill command (either 'field or 'entry)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
901
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
902 (defvar bibtex-strings nil)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
903 ;; Candidates for bibtex-complete-string. Initialized from
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
904 ;; bibtex-predefined-strings and bibtex-string-files. This variable is
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
905 ;; buffer-local.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
906 (make-variable-buffer-local 'bibtex-strings)
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
907
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
908 (defvar bibtex-keys nil)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
909 ;; Candidates for TAB completion when entering a reference key using
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
910 ;; the minibuffer. Also used for bibtex-complete-key. Initialized in
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
911 ;; bibtex-mode and updated for each new entry. This variable is
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
912 ;; buffer-local.
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
913 (make-variable-buffer-local 'bibtex-keys)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
914
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
915 (defvar bibtex-buffer-last-parsed-tick nil)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
916 ;; Remembers the value returned by buffer-modified-tick when buffer
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
917 ;; was parsed for keys the last time.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
918 (make-variable-buffer-local 'bibtex-buffer-last-parsed-tick)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
919
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
920 (defvar bibtex-parse-idle-timer nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
921 ;; Stores if timer is already installed
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
922
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
923 (defvar bibtex-progress-lastperc nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
924 ;; Holds the last reported percentage for the progress message
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
925
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
926 (defvar bibtex-progress-lastmes nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
927 ;; Holds the last reported progress message
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
928
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
929 (defvar bibtex-progress-interval nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
930 ;; Holds the chosen interval
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
931
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
932 (defvar bibtex-key-history nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
933 ;; Used to store the history list for reading keys
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
934
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
935 (defvar bibtex-entry-type-history nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
936 ;; Used to store the history list for reading entry types
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
937
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
938 (defvar bibtex-field-history nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
939 ;; Used to store the history list for reading field names
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
940
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
941 (defvar bibtex-reformat-previous-options nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
942 ;; Used to store the last reformat options given
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
943
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
944 (defvar bibtex-reformat-previous-labels nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
945 ;; Used to store the last reformat label option given
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
946
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
947
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
948 ;; Functions to Parse the BibTeX Entries
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
949
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
950 (defun bibtex-cfield (name text)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
951 ;; Create a regexp for a BibTeX field of name NAME and text TEXT.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
952 (concat ",[ \t\n]*\\("
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
953 name
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
954 "\\)[ \t\n]*=[ \t\n]*\\("
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
955 text
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
956 "\\)"))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
957 (defconst bibtex-name-in-cfield 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
958 ;; The regexp subexpression number of the name part in bibtex-cfield.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
959
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
960 (defconst bibtex-text-in-cfield 2)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
961 ;; The regexp subexpression number of the text part in bibtex-cfield.
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
962
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
963 (defconst bibtex-reference-type "@[^\"#%'(),={} \t\n0-9][^\"#%'(),={} \t\n]*")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
964 ;; Regexp defining the type part of a BibTeX reference entry (almost
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
965 ;; the same as bibtex-field-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
966
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
967 (defconst bibtex-reference-key "[][a-z0-9.:;?!`'/*@+=|()<>&_^$-]+")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
968 ;; Regexp defining the label part of a BibTeX reference entry
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
969
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
970 (defconst bibtex-field-name "[^\"#%'(),={} \t\n0-9][^\"#%'(),={} \t\n]*")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
971 ;; Regexp defining the name part of a BibTeX field (almost the same as
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
972 ;; bibtex-reference-type)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
973
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
974 (defconst bibtex-field-const "[][a-z0-9.:;?!`'/*@+=|<>&_^$-]+")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
975 ;; Regexp defining a bibtex field constant
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
976
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
977 (defconst bibtex-field-string-part-not-braced
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
978 "[^{}]")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
979 ;; Match field string part without braces
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
980
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
981 (defconst bibtex-field-string-part-no-inner-braces
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
982 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
983 "{"
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
984 bibtex-field-string-part-not-braced "*"
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
985 "}"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
986 ;; Match field string part with no inner braces
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
987
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
988 (defconst bibtex-field-string-part-1-inner-brace
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
989 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
990 "{"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
991 "\\("
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
992 bibtex-field-string-part-not-braced
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
993 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
994 "\\(" bibtex-field-string-part-no-inner-braces "\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
995 "\\)*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
996 "}"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
997 ;; Match field string part with at most 1 inner brace
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
998
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
999 (defconst bibtex-field-string-part-2-inner-braces
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1000 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1001 "{"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1002 "\\("
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1003 bibtex-field-string-part-not-braced
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1004 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1005 "\\(" bibtex-field-string-part-1-inner-brace "\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1006 "\\)*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1007 "}"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1008 ;; Match field string part with at most 2 inner braces
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1009
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1010 (defconst bibtex-field-string-part-3-inner-braces
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1011 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1012 "{"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1013 "\\("
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1014 bibtex-field-string-part-not-braced
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1015 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1016 "\\(" bibtex-field-string-part-2-inner-braces "\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1017 "\\)*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1018 "}"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1019 ;; Match field string part with at most 3 inner braces
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1020
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1021 (defconst bibtex-field-string-braced
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1022 bibtex-field-string-part-3-inner-braces)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1023 ;; Match braced field string with inner nesting level of braces at most 3
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1024
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1025 (defconst bibtex-field-string-quoted
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1026 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1027 "\""
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1028 "\\("
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1029 "[^\"\\]" ;; every character except quote or backslash
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1030 "\\|"
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1031 ;; "\\(" "\"[a-z-]" "\\)" ;; a quote followed by a letter or dash
15637
405b1ecbf8ba (bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents: 15565
diff changeset
1032 ;; "\\|"
405b1ecbf8ba (bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents: 15565
diff changeset
1033 ;; last two lines commented out until lines like
405b1ecbf8ba (bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents: 15565
diff changeset
1034 ;; author = "Stefan Sch"of"
405b1ecbf8ba (bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents: 15565
diff changeset
1035 ;; are supported by BibTeX
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1036 "\\(" "\\\\\\(.\\|\n\\)" "\\)" ;; a backslash followed by any character
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1037 "\\)*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1038 "\""))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1039 ;; Match quoted field string
561
a819dc25b9e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 257
diff changeset
1040
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1041 (defconst bibtex-field-string
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1042 (concat
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1043 "\\(" bibtex-field-string-braced "\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1044 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1045 "\\(" bibtex-field-string-quoted "\\)"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1046 ;; Match a braced or quoted string
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1047
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1048 (defconst bibtex-field-string-or-const
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1049 (concat bibtex-field-const "\\|" bibtex-field-string))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1050 ;; Match either bibtex-field-string or bibtex-field-const.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1051
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1052 (defconst bibtex-field-text
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1053 (concat
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1054 "\\(" bibtex-field-string-or-const "\\)"
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1055 "\\([ \t\n]+#[ \t\n]+\\(" bibtex-field-string-or-const "\\)\\)*"))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1056 ;; Regexp defining the text part of a BibTeX field: either a string,
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1057 ;; or an empty string, or a constant followed by one or more # /
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1058 ;; constant pairs.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1059
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1060 (defconst bibtex-field
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1061 (bibtex-cfield bibtex-field-name bibtex-field-text))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1062 ;; Regexp defining the format of a BibTeX field.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1063
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1064 (defconst bibtex-name-in-field bibtex-name-in-cfield)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1065 ;; The regexp subexpression number of the name part in BibTeX-field.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1066
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1067 (defconst bibtex-text-in-field bibtex-text-in-cfield)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1068 ;; The regexp subexpression number of the text part in BibTeX-field.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1069
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1070 (defconst bibtex-reference-head
15637
405b1ecbf8ba (bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents: 15565
diff changeset
1071 (concat "^[ \t]*\\("
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1072 bibtex-reference-type
24620
ea2988489a80 (bibtex-reference-head): Allow entries to start with a newline.
Karl Heuer <kwzh@gnu.org>
parents: 22649
diff changeset
1073 "\\)[ \t]*[({][ \t\n]*\\("
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1074 bibtex-reference-key
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1075 "\\)"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1076 ;; Regexp defining format of the header line of a BibTeX reference
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1077 ;; entry.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1078
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1079 (defconst bibtex-reference-maybe-empty-head
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1080 (concat bibtex-reference-head "?"))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1081 ;; Regexp defining format of the header line of a maybe empty
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1082 ;; BibTeX reference entry (without reference key).
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1083
15637
405b1ecbf8ba (bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents: 15565
diff changeset
1084 (defconst bibtex-type-in-head 1)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1085 ;; The regexp subexpression number of the type part in
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1086 ;; bibtex-reference-head.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1087
15637
405b1ecbf8ba (bibtex-reference-head): Allow spaces and tabs between
Karl Heuer <kwzh@gnu.org>
parents: 15565
diff changeset
1088 (defconst bibtex-key-in-head 2)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1089 ;; The regexp subexpression number of the key part in
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1090 ;; bibtex-reference-head.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1091
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1092 (defconst bibtex-reference-infix (concat "[ \t\n]*" bibtex-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1093 ;; Regexp defining the (repeatable) infix of a bibtex reference
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1094
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1095 (defconst bibtex-reference-postfix "[ \t\n]*,?[ \t\n]*[})]")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1096 ;; Regexp defining the postfix of a bibtex reference
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1097
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1098 (defconst bibtex-key-in-reference bibtex-key-in-head)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1099 ;; The regexp subexpression number of the key part in
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1100 ;; bibtex-reference.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1101
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1102 (defconst bibtex-string
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1103 (concat "^[ \t]*@string[ \t\n]*[({][ \t\n]*\\("
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1104 bibtex-reference-key
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1105 "\\)[ \t\n]*=[ \t\n]*\\("
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1106 bibtex-field-text
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1107 "\\)[ \t\n]*[})]"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1108 ;; Regexp defining the format of a BibTeX string entry.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1109
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1110 (defconst bibtex-key-in-string 1)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1111 ;; The regexp subexpression of the name part in 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
1112
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1113 (defconst bibtex-text-in-string 2)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1114 ;; The regexp subexpression of the text part in 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
1115
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1116 (defvar bibtex-font-lock-keywords
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1117 (list
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1118 ;; reference type and reference label
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1119 (list bibtex-reference-maybe-empty-head
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1120 (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
1121 (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
1122 ;; comments
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1123 (list
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1124 (concat "^\\([ \t]*" bibtex-comment-start ".*\\)$")
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1125 1 'font-lock-comment-face)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1126 ;; 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
1127 (list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1128 (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
1129 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
1130 ;; field names
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1131 (list (concat "^[ \t]*\\(" bibtex-field-name "\\)[ \t]*=")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1132 1 'font-lock-variable-name-face)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1133 "*Default expressions to highlight in BibTeX mode."))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1134 ;; now all needed patterns are defined
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1135
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1136
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1137 ;; 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
1138
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
1139 (defun 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
1140 ;; Delete all whitespace starting at point
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1141 (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
1142 (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
1143
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
1144 (defun bibtex-current-line ()
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1145 ;; this computes line number of point regardless whether the buffer
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1146 ;; is narrowed
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1147 (+ (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
1148 (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
1149
17700
d28dbbfabfb1 (assoc-ignore-case): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents: 15852
diff changeset
1150 (defun bibtex-member-of-regexp (string list)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1151 ;; Return non-nil if STRING is exactly matched by an element of
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1152 ;; LIST. The value is actually the tail of LIST whose
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1153 ;; car matches STRING.
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1154 (let (case-fold-search)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1155 (while
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1156 (and list (not (string-match (concat "^" (car list) "$") string)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1157 (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
1158 list))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1159
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
1160 (defun bibtex-assoc-of-regexp (string alist)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1161 ;; Return non-nil if STRING is exactly matched by the car of an
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1162 ;; element of LIST (case ignored). The value is actually the element
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1163 ;; of LIST whose car matches STRING.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1164 (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
1165 (while
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1166 (and alist
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1167 (not (string-match (concat "^" (car (car alist)) "$") string)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1168 (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
1169 (car alist)))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1170
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
1171 (defun bibtex-skip-to-valid-entry (&optional backward)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1172 ;; If not at beginning of valid BibTeX entry, move to beginning of
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1173 ;; the next valid one. With argument backward non-nil, move backward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1174 ;; to beginning of previous valid one. A valid entry is a
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1175 ;; syntactical correct one with type contained in
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1176 ;; bibtex-entry-field-alist or, if 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
1177 ;; is nil, a syntactical correct string entry.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1178 (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
1179 (valid-bibtex-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1180 (concat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1181 "@[ \t]*\\("
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1182 (mapconcat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1183 (lambda (type)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1184 (concat "\\(" (car type) "\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1185 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
1186 "\\|")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1187 "\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1188 found)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1189 (while (and (not found)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1190 (not (if backward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1191 (bobp)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1192 (eobp))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1193 (let ((pnt (point)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1194 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1195 ((looking-at valid-bibtex-entry)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1196 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1197 (bibtex-search-reference nil nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1198 (equal (match-beginning 0) pnt))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1199 (setq found t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1200 ((and (not 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
1201 (looking-at bibtex-string))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1202 (setq found t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1203 (if found
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1204 (goto-char pnt)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1205 (if backward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1206 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1207 (goto-char (1- pnt))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1208 (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
1209 (goto-char (match-beginning 1))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1210 (goto-char (1+ pnt))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1211 (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
1212 (forward-char -1))))))))
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
1213
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
1214 (defun bibtex-map-entries (fun)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1215 ;; Call FUN for each BibTeX entry starting with the current. Do this
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1216 ;; to the end of the file. FUN is called with one argument, the key
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1217 ;; of the entry, and with point inside the entry. If
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1218 ;; bibtex-sort-ignore-string-entries is non-nil, FUN will not be
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1219 ;; called for @String entries.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1220 (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
1221 (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
1222 (while (re-search-forward bibtex-reference-maybe-empty-head nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1223 (let ((pnt (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1224 (reference-type
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1225 (downcase (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1226 (1+ (match-beginning bibtex-type-in-head))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1227 (match-end bibtex-type-in-head))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1228 (reference-key
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1229 (if (match-beginning bibtex-key-in-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1230 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1231 (match-beginning bibtex-key-in-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1232 (match-end bibtex-key-in-head))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1233 "")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1234 (if (or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1235 (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1236 (not 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
1237 (string-equal "string" (downcase reference-type)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1238 (assoc-ignore-case reference-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
1239 (funcall fun reference-key))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1240 (goto-char pnt)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1241 (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
1242
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1243 (defun bibtex-progress-message (&optional flag interval)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1244 ;; echos a message about progress of current buffer
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1245 ;; if flag is a string, the message is initialized (in this case a
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1246 ;; value for INTERVAL may be given as well (if not this is set to 5))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1247 ;; if flag is done, the message is deinitialized
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1248 ;; if flag is absent, a message is echoed if point was incremented
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1249 ;; at least INTERVAL percent since last message was echoed
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1250 (let* ((size (- (point-max) (point-min)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1251 (perc (if (= size 0)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1252 100
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1253 (/ (* 100 (- (point) (point-min))) size))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1254 (if (or (and (not flag)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1255 (>= perc
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1256 (+ bibtex-progress-interval bibtex-progress-lastperc)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1257 (stringp flag))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1258 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1259 (if (stringp flag)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1260 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1261 (setq bibtex-progress-lastmes flag)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1262 (if interval
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1263 (setq bibtex-progress-interval interval)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1264 (setq bibtex-progress-interval 5))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1265 (setq bibtex-progress-lastperc perc)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1266 (message (concat bibtex-progress-lastmes " (%d%%)") perc))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1267 (if (equal flag 'done)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1268 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1269 (message (concat bibtex-progress-lastmes " (done)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1270 (setq bibtex-progress-lastmes nil))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1271
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1272
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1273 (defun bibtex-field-left-delimiter ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1274 ;; returns a string dependent on bibtex-field-delimiters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1275 (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
1276 "{"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1277 "\""))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1278
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1279 (defun bibtex-field-right-delimiter ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1280 ;; returns a string dependent on bibtex-field-delimiters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1281 (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
1282 "}"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1283 "\""))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1284
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1285 (defun 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
1286 ;; returns a string dependent on bibtex-field-delimiters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1287 (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
1288 "{"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1289 "("))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1290
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1291 (defun bibtex-entry-right-delimiter ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1292 ;; returns a string dependent on bibtex-field-delimiters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1293 (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
1294 "}"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1295 ")"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1296
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1297 (defun bibtex-search-reference
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1298 (empty-head &optional bound noerror backward)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1299 ;; A helper function necessary since the failure stack size limit for
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1300 ;; regexps was reduced in emacs 19.32.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1301 ;; It searches for a BibTeX reference (maybe with an empty head if
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1302 ;; EMPTY-HEAD is t).
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1303 ;; BOUND and NOERROR are exactly as in re-search-forward. If
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1304 ;; BACKWARD is non-nil, search is done in reverse direction. After
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1305 ;; call to this function MATCH-BEGINNING and MATCH-END functions are
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1306 ;; defined, but only for the head part of the reference (especially
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1307 ;; (match-end 0) just gives the end of the head part).
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1308 (let ((pnt (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1309 (prefix (if empty-head
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1310 bibtex-reference-maybe-empty-head
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1311 bibtex-reference-head))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1312 (infix bibtex-reference-infix)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1313 (postfix bibtex-reference-postfix))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1314 (if backward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1315 (let (found)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1316 (while (and (not found)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1317 (re-search-backward prefix bound noerror))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1318 (setq found (bibtex-search-reference empty-head pnt t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1319 (if found
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1320 (goto-char (match-beginning 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1321 (if (equal noerror nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1322 ;; yell
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1323 (error "Search of BibTeX reference failed"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1324 (if (equal noerror t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1325 ;; don't move
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1326 (goto-char pnt))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1327 nil))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1328 (let ((limit (if bound bound (point-max)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1329 md
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1330 found)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1331 (while (and (not found)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1332 (re-search-forward prefix bound noerror))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1333 (setq md (match-data))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1334 ;; save match-data of prefix regexp
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1335 (let ((entry-closer
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1336 (if (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1337 (goto-char (match-end bibtex-type-in-head))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1338 (looking-at "[ \t]*("))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1339 ;; entry opened with parenthesis
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1340 ")"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1341 "}")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1342 (while (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1343 (looking-at infix)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1344 (<= (match-end 0) limit))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1345 (goto-char (match-end 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1346 ;; This matches the infix* part. The AND construction assures
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1347 ;; that BOUND is respected.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1348 (if (and (looking-at postfix)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1349 (string-equal
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1350 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1351 (1- (match-end 0)) (match-end 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1352 entry-closer)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1353 (<= (match-end 0) limit))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1354 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1355 (re-search-forward postfix)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1356 (setq found t)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1357 (if found
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1358 (progn
21169
422a28894f3a (bibtex-search-reference): store-match-data => set-match-data.
Richard M. Stallman <rms@gnu.org>
parents: 20953
diff changeset
1359 (set-match-data md)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1360 ;; to set match-beginning/end again
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1361 (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1362 (if (equal noerror nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1363 ;; yell
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1364 (error "Search of BibTeX reference failed"))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1365 (if (equal noerror t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1366 ;; don't move
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1367 (goto-char pnt))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1368 nil)))))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1369
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1370 (defun bibtex-flash-head ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1371 ;; Flash at BibTeX reference head before point, if exists.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1372 (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
1373 flash)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1374 (cond ((re-search-backward bibtex-reference-head nil t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1375 (goto-char (match-beginning bibtex-type-in-head))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1376 (setq flash (match-end bibtex-key-in-reference)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1377 (t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1378 (end-of-line)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1379 (skip-chars-backward " \t")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1380 (setq flash (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1381 (beginning-of-line)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1382 (skip-chars-forward " \t")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1383 (if (pos-visible-in-window-p (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1384 (sit-for 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1385 (message "From: %s"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1386 (buffer-substring (point) flash)))))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1387
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1388 (defun bibtex-make-optional-field (e-t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1389 "Makes an optional field named E-T in current BibTeX entry."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1390 (if (consp e-t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1391 (bibtex-make-field (cons (concat "OPT" (car e-t)) (cdr e-t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1392 (bibtex-make-field (concat "OPT" e-t))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1393
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1394 (defun bibtex-move-outside-of-entry ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1395 ;; Make sure we are outside of a BibTeX entry.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1396 (let ((orig-point (point)))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1397 (bibtex-end-of-entry)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1398 (if (< (point) orig-point)
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1399 ;; We moved backward, so we weren't inside an entry to begin with.
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1400 ;; Leave point at the beginning of a line, and preferably
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1401 ;; at the beginning of a paragraph.
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1402 (progn
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1403 (goto-char orig-point)
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1404 (beginning-of-line 1)
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1405 (if (not (= ?\n (char-before (1- (point)))))
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1406 (progn
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1407 (re-search-forward "^[ \t]*[@\n]" nil 'move)
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1408 (backward-char 1)))))
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1409 (skip-chars-forward " \t\n")))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1410
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1411 (defun bibtex-beginning-of-first-entry ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1412 ;; Go to the beginning of the first BibTeX entry in buffer. Return
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1413 ;; point.
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1414 (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
1415 (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
1416 (beginning-of-line))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1417 (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1418
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1419 (defun bibtex-beginning-of-last-entry ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1420 ;; Go to the beginning of the last BibTeX entry in buffer.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1421 (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
1422 (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
1423 (beginning-of-line))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1424 (point))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1425
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1426 (defun bibtex-inside-field ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1427 ;; Try to avoid point being at end of a BibTeX field.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1428 (end-of-line)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1429 (skip-chars-backward " \t")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1430 (cond ((= (preceding-char) ?,)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1431 (forward-char -2)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1432 (cond ((or
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1433 (= (preceding-char) ?})
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1434 (= (preceding-char) ?\"))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1435 (forward-char -1))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1436
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1437 (defun bibtex-enclosing-field (&optional noerr)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1438 ;; Search for BibTeX field enclosing point. Point moves to end of
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1439 ;; field. Use match-beginning and match-end to parse the field. If
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1440 ;; NOERR is non-nil, no error is signalled. In this case, t is
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1441 ;; returned on success, nil otherwise.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1442 (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
1443 (old-point (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1444 (boe (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
1445 (success t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1446 (goto-char old-point)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1447 (if (not (re-search-backward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1448 (bibtex-cfield bibtex-field-name "")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1449 boe t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1450 ;; Search possible beginning of field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1451 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1452 (goto-char old-point)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1453 (if noerr
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1454 (setq success nil)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1455 (error "Can't find enclosing BibTeX field")))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1456 (if (or (not (re-search-forward bibtex-field nil t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1457 (< (match-end 0) old-point)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1458 (> (match-beginning 0) old-point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1459 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1460 (goto-char old-point)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1461 (if noerr
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1462 (setq success nil)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1463 (error "Can't find enclosing BibTeX field")))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1464 success))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1465
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1466 (defun bibtex-enclosing-reference-maybe-empty-head ()
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1467 ;; Search for BibTeX reference enclosing point. Point moves to
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1468 ;; end of reference. Beginning (but not end) of reference is given
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1469 ;; by (match-beginning 0).
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1470 (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
1471 (old-point (point)))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1472 (if (not
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1473 (re-search-backward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1474 bibtex-reference-maybe-empty-head nil t))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1475 (progn
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1476 (error "Can't find enclosing BibTeX reference")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1477 (goto-char old-point)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1478 (goto-char (match-beginning bibtex-type-in-head))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1479 (if (not
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1480 (bibtex-search-reference t nil t))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1481 (progn
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1482 (error "Can't find enclosing BibTeX reference")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1483 (goto-char old-point)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1484
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1485 (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
1486 (if (not bibtex-last-kill-command)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1487 (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
1488 (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
1489 '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
1490 '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
1491 (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
1492 '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
1493 'bibtex-entry-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
1494 (ARGth-kill-element
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1495 (nthcdr
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1496 (mod (- n (length (eval kryp))) (length (eval kr)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1497 (eval kr)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1498 (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
1499 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1500 ((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
1501 (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
1502 (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
1503 (if (looking-at "[}\"]")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1504 (forward-char)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1505 (set-mark (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1506 (message "Mark set")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1507 (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
1508 ((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
1509 (if (not (eobp))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1510 (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
1511 (set-mark (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1512 (message "Mark set")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1513 (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
1514 (t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1515 (error
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1516 "Unknown tag field: %s. Please submit a bug report"
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1517 bibtex-last-kill-command))))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1518
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1519 (defun bibtex-format-entry ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1520 ;; Helper function for bibtex-clean-entry. Formats current entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1521 ;; according to variable bibtex-entry-format.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1522 (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
1523 (beg (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1524 (start (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
1525 crossref-there
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1526 alternatives-there
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1527 non-empty-alternative)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1528 (let ((end (copy-marker (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
1529 (if (equal start (marker-position end))
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1530 (error "Not on a known BibTeX entry")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1531 (goto-char start)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1532 (while (re-search-forward bibtex-field end t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1533 ;; determine if reference has crossref entry and if at least
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1534 ;; one alternative is non-empty
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1535 (let ((begin-name (match-beginning bibtex-name-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1536 (end-name (match-end bibtex-name-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1537 (begin-text (match-beginning bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1538 (end-text (match-end bibtex-text-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1539 (goto-char begin-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1540 (if (looking-at "ALT")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1541 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1542 (setq alternatives-there t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1543 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1544 (if (not (looking-at "\\(\"\"\\)\\|\\({}\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1545 (setq non-empty-alternative t))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1546 (if (string-match
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1547 "\\(OPT\\)?crossref"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1548 (buffer-substring-no-properties begin-name end-name))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1549 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1550 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1551 crossref-there
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1552 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1553 (1+ begin-text) (1- end-text)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1554 (if (equal crossref-there "")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1555 (setq crossref-there nil))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1556 (if (and alternatives-there
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1557 (not non-empty-alternative))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1558 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1559 (goto-char beg)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1560 (error "All alternatives are empty")))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1561 (goto-char start)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1562 (re-search-forward bibtex-reference-type end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1563 (let* ((begin-type (1+ (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1564 (end-type (match-end 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1565 (reference-type
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1566 (downcase
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1567 (buffer-substring-no-properties begin-type end-type)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1568 (entry-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1569 (assoc-ignore-case reference-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
1570 (req (elt (elt entry-list 1) 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1571 (creq (elt (elt entry-list 2) 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1572 (format (if (equal bibtex-entry-format t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1573 '(realign opts-or-alts numerical-fields
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1574 last-comma page-dashes delimiters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1575 unify-case inherit-booktitle)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1576 bibtex-entry-format))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1577 field-done)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1578 (if (memq 'unify-case format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1579 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1580 (delete-region begin-type end-type)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1581 (insert (car entry-list))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1582 (if (memq 'delimiters format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1583 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1584 (goto-char end-type)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1585 (skip-chars-forward " \t\n")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1586 (delete-char 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1587 (insert (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
1588 (goto-char start)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1589 (while (re-search-forward bibtex-field end t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1590 (let* ((begin-field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1591 (copy-marker (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1592 (end-field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1593 (copy-marker (match-end 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1594 (begin-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1595 (copy-marker (match-beginning bibtex-name-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1596 (end-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1597 (copy-marker (match-end bibtex-name-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1598 (begin-text
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1599 (copy-marker (match-beginning bibtex-text-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1600 (end-text
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1601 (copy-marker (match-end bibtex-text-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1602 (field-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1603 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1604 (if (string-match
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1605 "^OPT\\|ALT$"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1606 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1607 begin-name (+ begin-name 3)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1608 (+ begin-name 3)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1609 begin-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1610 end-name)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1611 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1612 ((and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1613 (memq 'opts-or-alts format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1614 (progn (goto-char begin-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1615 (looking-at "OPT\\|ALT")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1616 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1617 (if (looking-at "\\(\"\"\\)\\|\\({}\\)")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1618 ;; empty: delete whole field if really optional
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1619 ;; (missing crossref handled) or complain
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1620 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1621 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1622 (goto-char begin-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1623 (looking-at "OPT"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1624 (not crossref-there)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1625 (assoc-ignore-case field-name req))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1626 ;; field is not really optional
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1627 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1628 (goto-char begin-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1629 (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
1630 (error
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1631 "Mandatory field ``%s'' is empty" field-name))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1632 ;; field is optional
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1633 (delete-region begin-field end-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1634 ;; otherwise: not empty, delete "OPT"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1635 (goto-char begin-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1636 (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
1637 ((and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1638 (memq 'numerical-fields format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1639 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1640 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1641 (looking-at "\\(\"[0-9]+\"\\)\\|\\({[0-9]+}\\)")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1642 (goto-char end-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1643 (delete-char -1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1644 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1645 (delete-char 1))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1646 (t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1647 (if (memq 'delimiters format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1648 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1649 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1650 (while (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1651 (<= (point) end-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1652 (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1653 bibtex-field-string-or-const end-text t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1654 (let ((end (point)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1655 (goto-char (match-beginning 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1656 (if (or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1657 (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1658 (equal bibtex-field-delimiters 'double-quotes)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1659 (looking-at bibtex-field-string-braced))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1660 (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1661 (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
1662 (looking-at bibtex-field-string-quoted)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1663 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1664 (goto-char (match-end 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1665 (delete-backward-char 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1666 (insert (bibtex-field-right-delimiter))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1667 (goto-char (match-beginning 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1668 (delete-char 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1669 (insert (bibtex-field-left-delimiter))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1670 (goto-char end)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1671 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1672 (memq 'page-dashes format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1673 (string-match "^\\(OPT\\)?pages$" (downcase field-name))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1674 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1675 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1676 (looking-at
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1677 "\\([\"{][0-9]+\\)[ \t\n]*--?[ \t\n]*\\([0-9]+[\"}]\\)")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1678 (replace-match "\\1-\\2"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1679 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1680 (memq 'inherit-booktitle format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1681 (equal (downcase field-name) "booktitle")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1682 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1683 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1684 (looking-at "\\(\"\"\\)\\|\\({}\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1685 crossref-there
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1686 (not (bibtex-find-entry-location crossref-there t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1687 ;; booktitle field empty and crossref entry found
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1688 ;; --> insert title field of crossreferenced entry if there
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1689 (let ((end-of-crefd-entry (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
1690 (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
1691 (if (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1692 (bibtex-cfield "title" bibtex-field-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1693 end-of-crefd-entry t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1694 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1695 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1696 (forward-char)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1697 (insert
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1698 (buffer-substring-no-properties
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1699 (1+ (match-beginning bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1700 (1- (match-end bibtex-text-in-field))))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1701 (if (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1702 (goto-char begin-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1703 (looking-at "\\(\"\"\\)\\|\\({}\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1704 ;; if empty field, complain
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1705 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1706 (forward-char)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1707 (if (or (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1708 crossref-there
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1709 (assoc-ignore-case
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1710 field-name creq))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1711 (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1712 (not crossref-there)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1713 (assoc-ignore-case
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1714 field-name req)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1715 (error
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1716 "Mandatory field ``%s'' is empty" field-name))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1717 (if (memq 'unify-case format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1718 (let* ((fl
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1719 (car (cdr (assoc-ignore-case
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1720 reference-type
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1721 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
1722 (field-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1723 (append
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1724 (elt fl 0)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1725 (elt fl 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1726 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
1727 (new-field-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1728 (car
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1729 (assoc-ignore-case field-name field-list))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1730 (goto-char begin-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1731 (if new-field-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1732 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1733 (delete-region begin-name end-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1734 (insert new-field-name))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1735 (downcase-region begin-name end-name))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1736 (setq field-done t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1737 (if (not field-done)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1738 (goto-char begin-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1739 (setq field-done nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1740 (goto-char end-field))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1741 (if (looking-at (bibtex-field-right-delimiter))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1742 (forward-char))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1743 (if (memq 'last-comma format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1744 (cond ((and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1745 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
1746 (not (looking-at ",")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1747 (insert ","))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1748 ((and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1749 (not 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
1750 (looking-at ","))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1751 (delete-char 1))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1752 (if (looking-at ",")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1753 (forward-char))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1754 (if (memq 'delimiters format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1755 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1756 (skip-chars-forward " \t\n")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1757 (delete-char 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1758 (insert (bibtex-entry-right-delimiter))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1759 (if (memq 'realign format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1760 (bibtex-fill-entry)))))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1761
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1762 (defun bibtex-autokey-change (string change-list)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1763 ;; Returns a string where some regexps are changed according to
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1764 ;; change-list. Every item of change-list is an (old-regexp
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1765 ;; new-string) pair.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1766 (let (case-fold-search
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1767 (return-string string)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1768 (index 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1769 (len (length change-list))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1770 change-item)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1771 (while (< index len)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1772 (setq change-item (elt change-list index))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1773 (while (string-match (car change-item) return-string)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1774 (setq
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1775 return-string
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1776 (concat (substring return-string 0 (match-beginning 0))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1777 (elt change-item 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1778 (substring return-string (match-end 0)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1779 (setq index (1+ index)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1780 return-string))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1781
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1782 (defun bibtex-autokey-abbrev (string len)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1783 ;; Returns an abbreviation of string with at least len
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1784 ;; characters. String is aborted only after a consonant or at the
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1785 ;; word end. If len is not a number, string is returned unchanged.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1786 (cond ((or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1787 (not (numberp len))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1788 (<= (length string) len))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1789 string)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1790 ((equal len 0)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1791 "")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1792 (t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1793 (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
1794 (abort-char
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1795 (string-match "[^aeiou]" string (1- len))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1796 (if abort-char
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1797 (substring string 0 (1+ abort-char))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1798 string)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1799
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1800 (defun bibtex-autokey-get-namefield (min max)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1801 ;; returns the contents of the name field of the current entry
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1802 ;; does some modifications based on `bibtex-autokey-name-change-strings'
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1803 ;; and removes newlines unconditionally
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1804 (goto-char min)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1805 (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
1806 (if (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1807 (bibtex-cfield "\\(author\\)\\|\\(editor\\)" bibtex-field-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1808 max t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1809 (bibtex-autokey-change
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1810 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1811 (1+ (match-beginning (+ bibtex-text-in-cfield 2)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1812 (1- (match-end (+ bibtex-text-in-cfield 2))))
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1813 (append bibtex-autokey-name-change-strings '(("\n" " "))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1814 "")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1815
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1816 (defun bibtex-autokey-get-names (namefield)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1817 ;; gathers all names in namefield into a list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1818 (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
1819 names)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1820 (while (not (equal namefield ""))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1821 (let (name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1822 (if (string-match "[ \t\n]and[ \t\n]" namefield)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1823 (setq name (substring namefield 0 (match-beginning 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1824 namefield (substring namefield (match-end 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1825 (setq name namefield
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1826 namefield ""))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1827 (setq names (append names (list name)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1828 names))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1829
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1830 (defun bibtex-autokey-demangle-name (fullname)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1831 ;; gets the `last' part from a well-formed name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1832 (let* (case-fold-search
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1833 (lastname
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1834 (if (string-match "," fullname)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1835 ;; name is of the form "von Last, First" or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1836 ;; "von Last, Jr, First"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1837 ;; --> take only the part before the comma
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1838 (let ((von-last
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1839 (substring fullname 0 (match-beginning 0))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1840 (if (string-match "^[a-z]" von-last)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1841 ;; von-last has a "von" part --> take the "last" part
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1842 (if (string-match "[ \t][A-Z]" von-last)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1843 (substring von-last (1+ (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1844 (error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1845 "Name %s is incorrectly formed" fullname))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1846 ;; von-last has no "von" part --> take all
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1847 von-last))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1848 ;; name is of the form "First von Last"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1849 (if (string-match "[ \t]" fullname)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1850 ;; more than one token
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1851 (if (string-match "[ \t][a-z]" fullname)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1852 ;; there is a "von" part
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1853 ;; --> take everything after that
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1854 (if (string-match
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1855 "[ \t][A-Z]" fullname (match-end 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1856 (substring fullname (1+ (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1857 (error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1858 "Name %s is incorrectly formed" fullname))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1859 ;; there is no "von" part --> take only the last token
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1860 (if (string-match " [^ ]*$" fullname)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1861 (substring fullname (1+ (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1862 (error "Name %s is incorrectly formed" fullname)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1863 ;; only one token --> take it
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1864 fullname)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1865 (usename
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1866 (if (string-match "[ \t]+" lastname)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1867 ;; lastname consists of two or more tokens
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1868 ;; --> take only the first one
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1869 (substring lastname 0 (match-beginning 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1870 lastname)))
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1871 (funcall bibtex-autokey-name-case-convert usename)))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1872
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1873 (defun bibtex-autokey-get-namelist (namefield)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1874 ;; gets namefield, performs abbreviations on the last parts, and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1875 ;; return results as a list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1876 (mapcar
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1877 (lambda (fullname)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1878 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1879 fullname (substring fullname (string-match "[^ \t]" fullname)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1880 (bibtex-autokey-abbrev
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1881 (bibtex-autokey-demangle-name fullname)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1882 bibtex-autokey-name-length))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1883 (bibtex-autokey-get-names namefield)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1884
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1885 (defun bibtex-autokey-get-yearfield (min max)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1886 ;; get year field from current or maybe crossreferenced entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1887 (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
1888 (goto-char min)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1889 (if (re-search-forward
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1890 (bibtex-cfield "year" bibtex-field-text) max t)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1891 (let ((year (buffer-substring-no-properties
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1892 (match-beginning bibtex-text-in-cfield)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1893 (match-end bibtex-text-in-cfield))))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1894 (string-match "[^0-9]*\\([0-9]+\\)" year)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1895 (substring year (match-beginning 1) (match-end 1)))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1896 (if bibtex-autokey-year-use-crossref-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1897 (let ((crossref-field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1898 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1899 (goto-char min)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1900 (if (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1901 (bibtex-cfield
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1902 "\\(OPT\\)?crossref" bibtex-field-text)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1903 max t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1904 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1905 (1+
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1906 (match-beginning (+ bibtex-text-in-cfield 1)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1907 (1-
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1908 (match-end (+ bibtex-text-in-cfield 1))))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1909 (if (not (bibtex-find-entry-location crossref-field t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1910 (let ((end-of-crefd-entry (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
1911 (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
1912 (if (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1913 (bibtex-cfield "year" "[0-9]+")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1914 end-of-crefd-entry t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1915 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1916 (match-beginning bibtex-text-in-cfield)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1917 (match-end bibtex-text-in-cfield))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1918 ""))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1919 ""))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1920 ""))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1921
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1922 (defun bibtex-autokey-get-titlestring (min max)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1923 ;; get title field contents up to a terminator
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1924 (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
1925 (let ((titlefield
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1926 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1927 (goto-char min)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1928 (if (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1929 (bibtex-cfield "title" bibtex-field-text) max t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1930 (bibtex-autokey-change
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1931 (buffer-substring-no-properties
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1932 (1+ (match-beginning bibtex-text-in-cfield))
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1933 (1- (match-end bibtex-text-in-cfield)))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1934 bibtex-autokey-titleword-change-strings)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1935 "")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1936 (index 0)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1937 (numberofitems
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1938 (length bibtex-autokey-title-terminators)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1939 (while (< index numberofitems)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1940 (if (string-match
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1941 (elt bibtex-autokey-title-terminators index) titlefield)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1942 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1943 titlefield (substring titlefield 0 (match-beginning 0))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1944 (setq index (1+ index)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1945 titlefield)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1946
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1947 (defun bibtex-autokey-get-titles (titlestring)
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1948 ;; gathers words from titlestring into a list. Ignores
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1949 ;; specific words and uses only a specific amount of words.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1950 (let (case-fold-search
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1951 titlewords
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1952 titlewords-extra
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1953 (counter 0))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1954 (while (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1955 (not (equal titlestring ""))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1956 (or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1957 (not (numberp bibtex-autokey-titlewords))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1958 (< counter
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1959 (+ bibtex-autokey-titlewords
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1960 bibtex-autokey-titlewords-stretch))))
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1961 (if (string-match "\\b\\w+" titlestring)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1962 (let* ((end-match (match-end 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1963 (titleword
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1964 (substring titlestring (match-beginning 0) end-match)))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1965 (if (bibtex-member-of-regexp
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1966 titleword
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1967 bibtex-autokey-titleword-ignore)
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1968 (setq counter (1- counter))
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
1969 (setq
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1970 titleword
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1971 (funcall bibtex-autokey-titleword-case-convert titleword))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1972 (if (or (not (numberp bibtex-autokey-titlewords))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1973 (< counter bibtex-autokey-titlewords))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1974 (setq titlewords (append titlewords (list titleword)))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1975 (setq titlewords-extra
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1976 (append titlewords-extra (list titleword)))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1977 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1978 titlestring (substring titlestring end-match)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1979 (setq titlestring ""))
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1980 (setq counter (1+ counter)))
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1981 (if (string-match "\\b\\w+" titlestring)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1982 titlewords
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1983 (append titlewords titlewords-extra))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1984
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1985 (defun bibtex-autokey-get-titlelist (titlestring)
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
1986 ;; returns all words in titlestring as a list
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1987 ;; does some abbreviation on the found words
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1988 (mapcar
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1989 (lambda (titleword)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1990 (let ((abbrev
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
1991 (bibtex-assoc-of-regexp
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1992 titleword bibtex-autokey-titleword-abbrevs)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1993 (if abbrev
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1994 (elt abbrev 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1995 (bibtex-autokey-abbrev
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1996 titleword
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1997 bibtex-autokey-titleword-length))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
1998 (bibtex-autokey-get-titles titlestring)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1999
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2000 (defun bibtex-generate-autokey ()
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2001 "Generates 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
2002 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
2003 The generation algorithm works as follows:
4bcd559e2cb4 (bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 20359
diff changeset
2004 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
2005 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
2006 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
2007 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
2008 `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
2009 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
2010 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
2011 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
2012 `bibtex-autokey-names' + `bibtex-autokey-names-stretch'
4bcd559e2cb4 (bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 20359
diff changeset
2013 names, all names are used.
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2014 5. From every last name, take at least
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2015 `bibtex-autokey-name-length' characters (abort only after a
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2016 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
2017 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
2018 `bibtex-autokey-name-case-convert'.
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2019 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
2020 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
2021 `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
2022 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
2023 contained in `bibtex-autokey-additional-names'.
20446
4bcd559e2cb4 (bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 20359
diff changeset
2024 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
2025 the year field to the rightmost `bibtex-autokey-year-length'
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2026 digits (useful values are 2 and 4). If the year field is
20446
4bcd559e2cb4 (bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 20359
diff changeset
2027 absent, but the entry has a valid crossref field and the
4bcd559e2cb4 (bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 20359
diff changeset
2028 variable `bibtex-autokey-year-use-crossref-entry' is non-nil,
4bcd559e2cb4 (bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 20359
diff changeset
2029 use the year field of the crossreferenced entry instead.
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2030 9. For the title part of the key change the contents of the
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2031 title field of the reference according to
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2032 `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
2033 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
2034 further detail).
4bcd559e2cb4 (bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 20359
diff changeset
2035 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
2036 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
2037 `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
2038 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
2039 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
2040 `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
2041 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
2042 maximal `bibtex-autokey-titlewords' +
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2043 `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
2044 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
2045 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
2046 `bibtex-autokey-titleword-case-convert'.
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2047 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
2048 `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
2049 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
2050 detail).
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2051 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
2052 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
2053 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
2054 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
2055 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
2056 `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
2057 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
2058 `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
2059 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
2060 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
2061 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
2062 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
2063 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
2064 `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
2065 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
2066 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
2067 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
2068 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
2069 used as the key.
20446
4bcd559e2cb4 (bibtex-generate-autokey): Doc fix.
Karl Heuer <kwzh@gnu.org>
parents: 20359
diff changeset
2070 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
2071 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
2072 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
2073 used."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2074 (let* ((pnt (point))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2075 (min (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
2076 (max (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
2077 (namefield (bibtex-autokey-get-namefield min max))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2078 (name-etal "")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2079 (namelist
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2080 (let ((nl (bibtex-autokey-get-namelist namefield)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2081 (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
2082 (<= (length nl)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2083 (+ bibtex-autokey-names
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2084 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
2085 nl
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2086 (setq name-etal bibtex-autokey-additional-names)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2087 (let (nnl)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2088 (while (< (length nnl) bibtex-autokey-names)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2089 (setq nnl (append nnl (list (car nl)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2090 nl (cdr nl)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2091 nnl))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2092 (namepart
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2093 (concat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2094 (mapconcat (lambda (name) name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2095 namelist
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2096 bibtex-autokey-name-separator)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2097 name-etal))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2098 (yearfield (bibtex-autokey-get-yearfield min max))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2099 (yearpart
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2100 (if (equal yearfield "")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2101 ""
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2102 (substring
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2103 yearfield
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2104 (- (length yearfield) bibtex-autokey-year-length))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2105 (titlestring (bibtex-autokey-get-titlestring min max))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2106 (titlelist (bibtex-autokey-get-titlelist titlestring))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2107 (titlepart
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2108 (mapconcat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2109 (lambda (name) name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2110 titlelist
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2111 bibtex-autokey-titleword-separator))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2112 (autokey
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2113 (concat
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2114 bibtex-autokey-prefix-string
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2115 namepart
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2116 (if (not
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2117 (or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2118 (equal namepart "")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2119 (equal yearpart "")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2120 bibtex-autokey-name-year-separator)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2121 yearpart
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2122 (if (not
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2123 (or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2124 (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2125 (equal namepart "")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2126 (equal yearpart ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2127 (equal titlepart "")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2128 bibtex-autokey-year-title-separator)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2129 titlepart)))
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2130 (if bibtex-autokey-before-presentation-function
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2131 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2132 autokey
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2133 (funcall bibtex-autokey-before-presentation-function autokey)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2134 (goto-char pnt)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2135 autokey))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2136
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2137 (defun bibtex-parse-keys (add verbose &optional abortable)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2138 ;; Sets bibtex-keys to the keys used in the whole (possibly
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2139 ;; restricted) buffer (either as entry keys or as crossref entries).
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2140 ;; If ADD is non-nil adds the new keys to bibtex-keys instead of
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2141 ;; simply resetting it. If VERBOSE is non-nil gives messages about
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2142 ;; progress. If ABORTABLE is non-nil abort on user input.
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2143 (if bibtex-maintain-sorted-entries
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2144 (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
2145 (crossref-field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2146 (bibtex-cfield
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2147 "crossref" (concat "[{\"]" bibtex-reference-key "[}\"]")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2148 (labels (if add
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2149 bibtex-keys)))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2150 (save-excursion
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2151 (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
2152 (if verbose
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2153 (bibtex-progress-message
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2154 (concat (buffer-name) ": parsing reference keys")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2155 (if (catch 'userkey
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
2156 (bibtex-skip-to-valid-entry)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2157 (while (not (eobp))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2158 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2159 abortable
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2160 (input-pending-p))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2161 (throw 'userkey t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2162 (if verbose
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2163 (bibtex-progress-message))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2164 (let (label
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2165 label2)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2166 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2167 ((looking-at bibtex-reference-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2168 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2169 label
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2170 (buffer-substring-no-properties
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2171 (match-beginning bibtex-key-in-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2172 (match-end bibtex-key-in-head)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2173 (let ((p (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2174 (m (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
2175 (goto-char p)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2176 (if (re-search-forward crossref-field m t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2177 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2178 label2
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2179 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2180 (1+ (match-beginning bibtex-text-in-cfield))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2181 (1- (match-end bibtex-text-in-cfield)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2182 (goto-char p)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2183 ((looking-at bibtex-string)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2184 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2185 label
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2186 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2187 (match-beginning bibtex-key-in-string)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2188 (match-end bibtex-key-in-string)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2189 (forward-char)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
2190 (bibtex-skip-to-valid-entry)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2191 (if (not (assoc label labels))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2192 (setq labels
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2193 (cons (list label) labels)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2194 (if (and label2
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2195 (not (assoc label2 labels)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2196 (setq labels
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2197 (cons (list label2) labels))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2198 ;; user has aborted by typing a key --> return nil
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2199 nil
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2200 ;; successful operation --> return t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2201 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2202 bibtex-buffer-last-parsed-tick (buffer-modified-tick)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2203 bibtex-keys labels)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2204 (if verbose
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2205 (bibtex-progress-message 'done))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2206 t)))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2207
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2208 (defun bibtex-parse-buffers-stealthily ()
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2209 ;; Called by bibtex-run-with-idle-timer. Whenever emacs has been idle
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2210 ;; for bibtex-parse-keys-timeout seconds, all BibTeX buffers (starting
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2211 ;; with the current) are parsed.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2212 (let ((buffers (buffer-list)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2213 (save-excursion
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2214 (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
2215 (set-buffer (car buffers))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2216 (save-restriction
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2217 (widen)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2218 (if (and
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2219 (eq 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
2220 bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2221 (not
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2222 (eq (buffer-modified-tick)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2223 bibtex-buffer-last-parsed-tick)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2224 (if (bibtex-parse-keys nil t t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2225 ;; successful operation --> remove buffer from list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2226 (setq buffers (cdr buffers)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2227 ;; buffer is no BibTeX buffer or needs no parsing
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2228 (setq buffers (cdr 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
2229
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2230 (defun bibtex-complete (string-list &optional complete-strings)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2231 ;; Complete word fragment before point to longest prefix of one
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2232 ;; string defined in STRING-LIST. If point is not after the part of
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2233 ;; a word, all strings are listed. If COMPLETE-STRINGS is non-nil,
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2234 ;; add the strings defined in this buffer before cursor to
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2235 ;; STRING-LIST and remove surrounding delimiters if complete string
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2236 ;; could be expanded.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2237 (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
2238 (end (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2239 (beg (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2240 (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
2241 (forward-char)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2242 (point)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2243 (part-of-word (buffer-substring-no-properties beg end))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2244 (completions (copy-sequence string-list))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2245 (completion (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2246 (if complete-strings
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2247 (while (re-search-backward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2248 bibtex-string nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2249 (setq completions
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2250 (cons
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2251 (list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2252 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2253 (match-beginning bibtex-key-in-string)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2254 (match-end bibtex-key-in-string)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2255 completions))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2256 (setq completions
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2257 (sort completions
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2258 (lambda(x y)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2259 (string-lessp
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2260 (car x)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2261 (car y)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2262 (try-completion part-of-word completions))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2263 (cond ((eq completion t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2264 (if complete-strings
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2265 ;; remove double-quotes or braces if field is no concatenation
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2266 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2267 (bibtex-inside-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2268 (bibtex-enclosing-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2269 (let ((end (match-end bibtex-text-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2270 (goto-char (match-beginning bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2271 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2272 (looking-at bibtex-field-string)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2273 (equal (match-end 0) end))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2274 (bibtex-remove-delimiters))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2275 ((not completion)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2276 (error "Can't find completion for \"%s\"" 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
2277 ((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
2278 (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
2279 (insert completion)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2280 (if (and (assoc completion completions)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2281 complete-strings)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2282 ;; remove double-quotes or braces if field is no concatenation
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2283 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2284 (bibtex-inside-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2285 (bibtex-enclosing-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2286 (let ((end (match-end bibtex-text-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2287 (goto-char (match-beginning bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2288 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2289 (looking-at bibtex-field-string)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2290 (equal (match-end 0) end))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2291 (bibtex-remove-delimiters))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2292 (t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2293 (message "Making completion list...")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2294 (let ((list (all-completions part-of-word completions)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2295 (with-output-to-temp-buffer "*Completions*"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2296 (display-completion-list list)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2297 (message "Making completion list...done")))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2298
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2299 (defun bibtex-do-auto-fill ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2300 (let ((fill-prefix
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2301 (make-string
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2302 (+ bibtex-entry-offset bibtex-contline-indentation) ? )))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2303 (do-auto-fill)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2304
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2305 (defun bibtex-pop (arg direction)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2306 ;; generic function to be used by bibtex-pop-previous and bibtex-pop-next
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2307 (let (bibtex-help-message)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2308 (bibtex-find-text nil))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2309 (save-excursion
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2310 ;; parse current field
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2311 (bibtex-inside-field)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2312 (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
2313 (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
2314 (start-old-text (match-beginning bibtex-text-in-field))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2315 (stop-old-text (match-end bibtex-text-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2316 (start-name (match-beginning bibtex-name-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2317 (stop-name (match-end bibtex-name-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2318 (new-text))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2319 (goto-char start-name)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2320 ;; construct regexp for field with same name as this one,
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2321 ;; ignoring possible OPT's or ALT's
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2322 (let ((matching-entry
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2323 (bibtex-cfield
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2324 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2325 (if (looking-at "OPT\\|ALT")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2326 (+ (point) (length "OPT"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2327 (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2328 stop-name)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2329 bibtex-field-text)))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2330 ;; if executed several times in a row, start each search where
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2331 ;; the last one was finished
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2332 (cond ((eq last-command 'bibtex-pop)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2333 t
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2334 )
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2335 (t
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2336 (bibtex-enclosing-reference-maybe-empty-head)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2337 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2338 bibtex-pop-previous-search-point (match-beginning 0)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2339 bibtex-pop-next-search-point (point))))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2340 (if (eq direction 'previous)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2341 (goto-char bibtex-pop-previous-search-point)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2342 (goto-char bibtex-pop-next-search-point))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2343 ;; Now search for arg'th previous/next similar field
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2344 (cond
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2345 ((if (eq direction 'previous)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2346 (re-search-backward matching-entry nil t arg)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2347 (re-search-forward matching-entry nil t arg))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2348 ;; Found a matching field. Remember boundaries.
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2349 (setq bibtex-pop-previous-search-point (match-beginning 0))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2350 (setq bibtex-pop-next-search-point (match-end 0))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2351 (setq new-text
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2352 (buffer-substring-no-properties
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2353 (match-beginning bibtex-text-in-field)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2354 (match-end bibtex-text-in-field)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2355 ;; change delimiters, if any changes needed
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2356 (let ((start 0)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2357 old-open
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2358 new-open
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2359 old-close
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2360 new-close)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2361 (if (equal bibtex-field-delimiters 'braces)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2362 (setq old-open ?\"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2363 new-open ?\{
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2364 old-close ?\"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2365 new-close ?\})
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2366 (setq old-open ?\{
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2367 new-open ?\"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2368 old-close ?\}
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2369 new-close ?\"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2370 (while (string-match bibtex-field-string new-text start)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2371 (let ((beg (match-beginning 0))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2372 (end (1- (match-end 0))))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2373 (if (and
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2374 (eq (aref new-text beg) old-open)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2375 (eq (aref new-text end) old-close))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2376 (progn
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2377 (aset new-text beg new-open)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2378 (aset new-text end new-close))))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2379 (setq start (match-end 0))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2380 (bibtex-flash-head)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2381 ;; Go back to where we started, delete old text, and pop new.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2382 (goto-char stop-old-text)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2383 (delete-region start-old-text stop-old-text)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2384 (insert new-text))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2385 (t
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2386 ;; search failed
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2387 (error (concat "No "
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2388 (if (eq direction 'previous)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2389 "previous"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2390 "next")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2391 " matching BibTeX field.")))))))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2392 (let (bibtex-help-message)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2393 (bibtex-find-text nil))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2394 (setq this-command 'bibtex-pop))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2395
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2396
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2397 ;; Interactive Functions:
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2398
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2399 ;;;###autoload
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2400 (defun bibtex-mode ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2401 "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
2402
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2403 To submit a problem report, enter \\[bibtex-submit-bug-report] from a
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
2404 BibTeX mode buffer. This automatically sets up a mail buffer with
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2405 version information already added. You just need to add a description
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2406 of the problem, including a reproducable test case and send the
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2407 message.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2408
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2409
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2410 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
2411
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2412 You should use commands as \\[bibtex-Book] to get a template for a
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2413 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
2414 \\[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
2415 in all desired fields in the entry, you should clean the new entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2416 with command \\[bibtex-clean-entry].
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2417
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2418 Some features of BibTeX mode are available only by setting variable
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2419 bibtex-maintain-sorted-entries to t. However, then BibTeX mode will
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2420 work with buffer containing only valid (syntactical correct) entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2421 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
2422 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
2423 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
2424
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2425 For third party BibTeX buffers, please call the function
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2426 `bibtex-convert-alien' to fully take advantage of all features of
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2427 BibTeX mode.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2428
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2429
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2430 Special information:
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2431
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2432 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
2433
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2434 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
2435 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
2436 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
2437 \\[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
2438 \\[bibtex-kill-field] kills the current field entirely.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2439 \\[bibtex-yank] will yank the last recently killed field after the
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2440 current field.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2441 \\[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
2442 \\[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
2443
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2444 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
2445 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
2446 fields are empty, and does some formatting dependent on the value of
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2447 bibtex-entry-format.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2448 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
2449 format (all fields beginning on separate lines), so it is usually a bad
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2450 idea to remove `realign' from bibtex-entry-format.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2451
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2452 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
2453 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
2454
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2455 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
2456
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2457 Functions:
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2458 bibtex-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2459 bibtex-kill-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2460 bibtex-yank-pop
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2461 bibtex-pop-previous
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2462 bibtex-pop-next
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2463 bibtex-complete-string
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2464 bibtex-complete-key
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2465 bibtex-print-help-message
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2466 bibtex-generate-autokey
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2467 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
2468 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
2469 bibtex-reposition-window
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2470 bibtex-mark-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2471 bibtex-ispell-abstract
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2472 bibtex-ispell-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2473 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
2474 bibtex-hide-entry-bodies
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2475 bibtex-sort-buffer
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2476 bibtex-validate
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2477 bibtex-count
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2478 bibtex-fill-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2479 bibtex-reformat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2480 bibtex-convert-alien
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2481
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2482 Variables:
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2483 bibtex-field-delimiters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2484 bibtex-include-OPTcrossref
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2485 bibtex-include-OPTkey
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2486 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
2487 bibtex-entry-format
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2488 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
2489 bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2490 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
2491 bibtex-predefined-strings
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2492 bibtex-string-files
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 ---------------------------------------------------------
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
2495 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
2496 non-nil.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2497
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2498 \\{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
2499 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2500 (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
2501 (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
2502 (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
2503 (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
2504 (set-syntax-table bibtex-mode-syntax-table)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2505 (setq bibtex-strings bibtex-predefined-strings)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2506 (mapcar
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2507 (lambda (filename)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2508 ;; collect pathnames
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2509 (let* ((path (if bibtex-string-file-path
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2510 bibtex-string-file-path
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2511 "."))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2512 (dirs
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2513 (mapcar
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2514 (lambda (dirname) ;; strips off trailing slashes
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2515 (let ((len (length dirname)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2516 (if (equal (elt dirname (1- len)) "/")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2517 (substring dirname 0 (1- (1- len)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2518 dirname)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2519 (let (actdirs)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2520 (while (string-match ":" path)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2521 (setq actdirs
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2522 (append actdirs
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2523 (list (substring path 0 (1- (match-end 0)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2524 path (substring path (match-end 0))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2525 (append actdirs (list path)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2526 (filename (if (string-match "\.bib$" filename)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2527 filename
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2528 (concat filename ".bib")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2529 fullfilename
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2530 (item 0)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2531 (size (length dirs)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2532 ;; test filenames
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2533 (while (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2534 (< item size)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2535 (not (file-readable-p
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2536 (setq fullfilename
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2537 (concat (elt dirs item) "/" filename)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2538 (setq item (1+ item)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2539 (if (< item size)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2540 ;; file was found
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2541 (let ((case-fold-search t)
25444
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2542 (compl nil))
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2543 (with-temp-buffer
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2544 (insert-file-contents fullfilename)
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2545 (goto-char (point-min))
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2546 (while (re-search-forward bibtex-string nil t)
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2547 (setq compl
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2548 (cons (list (match-string-no-properties
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2549 bibtex-key-in-string))
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2550 compl))))
37b1636d73d5 (bibtex-mode): Use with-temp-buffer rather than make-temp-name, use
Richard M. Stallman <rms@gnu.org>
parents: 24897
diff changeset
2551 (setq bibtex-strings (append bibtex-strings (nreverse compl))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2552 (error
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2553 "File %s not in paths defined by bibtex-string-file-path variable"
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2554 filename))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2555 bibtex-string-files)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2556 (if bibtex-maintain-sorted-entries
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2557 (bibtex-run-with-idle-timer
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2558 1 nil
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2559 (lambda ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2560 (bibtex-parse-keys nil t t))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2561 ;; to get buffer parsed once if everything else (including things
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2562 ;; installed in bibtex-mode-hook) has done its work
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2563 (if (not bibtex-parse-idle-timer)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2564 (setq bibtex-parse-idle-timer
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2565 (bibtex-run-with-idle-timer
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2566 bibtex-parse-keys-timeout t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2567 'bibtex-parse-buffers-stealthily)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2568 ;; Install stealthy parse function if not already installed
24897
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2569 (make-local-variable 'paragraph-start)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2570 (setq paragraph-start "[ \f\n\t]*$")
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2571 (make-local-variable 'comment-start)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2572 (setq comment-start bibtex-comment-start)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2573 (make-local-variable 'comment-start-skip)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2574 (setq comment-start-skip bibtex-comment-start)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2575 (make-local-variable 'comment-column)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2576 (setq comment-column 0)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2577 (make-local-variable 'defun-prompt-regexp)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2578 (setq defun-prompt-regexp "^@[a-zA-Z0-9]+")
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2579 (make-local-variable 'outline-regexp)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2580 (setq outline-regexp "@")
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2581 (make-local-variable 'normal-auto-fill-function)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2582 (setq normal-auto-fill-function 'bibtex-do-auto-fill)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2583 (make-local-variable 'font-lock-defaults)
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2584 (setq font-lock-defaults
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2585 '(bibtex-font-lock-keywords
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2586 nil t ((?$ . "\"")
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2587 ;; Mathematical expressions should be fontified as strings
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2588 (?\" . ".")
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2589 ;; Quotes are field delimiters and quote-delimited
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2590 ;; entries should be fontified in the same way as
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2591 ;; brace-delimited ones
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2592 )))
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2593 (make-local-variable 'font-lock-mark-block-function)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2594 (setq font-lock-mark-block-function
24897
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2595 (lambda ()
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2596 (set-mark (bibtex-end-of-entry))
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2597 (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
2598 (setq imenu-generic-expression
24897
8de3e729a7b3 (bibtex-mode): `font-lock-mark-block-function'
Karl Heuer <kwzh@gnu.org>
parents: 24620
diff changeset
2599 (list (list nil bibtex-reference-head bibtex-key-in-head)))
20459
90f306f86f5d Use imenu-case-fold-search.
Dave Love <fx@gnu.org>
parents: 20447
diff changeset
2600 (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
2601 ;; 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
2602 (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
2603 (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
2604 (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
2605
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2606 (defun bibtex-submit-bug-report ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2607 "Submit via mail a bug report on bibtex.el."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2608 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2609 (if (y-or-n-p "Do you want to submit a bug report on BibTeX mode? ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2610 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2611 (require 'reporter)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2612 (let ((reporter-prompt-for-summary-p t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2613 (reporter-submit-bug-report
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2614 bibtex-maintainer-address
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2615 (concat "bibtex.el " "(emacs 19.35)")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2616 (list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2617 'system-configuration
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2618 'system-configuration-options
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2619 'bibtex-mode-hook
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2620 'bibtex-parse-keys-timeout
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2621 ;; possible general errors
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2622 '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
2623 'bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2624 'bibtex-entry-delimiters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2625 'bibtex-field-delimiters
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2626 '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
2627 'bibtex-entry-offset
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2628 'bibtex-field-indentation
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2629 'bibtex-text-indentation
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2630 'bibtex-contline-indentation
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2631 'bibtex-align-at-equal-sign
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2632 ;; possible sorting and parsing bugs
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2633 'bibtex-entry-format
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2634 '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
2635 'bibtex-clean-entry-hook
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2636 ;; possible cleaning error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2637 '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
2638 ;; possible format error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2639 'bibtex-predefined-month-strings
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2640 'bibtex-predefined-strings
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2641 'bibtex-string-files
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2642 'bibtex-string-file-path
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2643 ;; possible format error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2644 'bibtex-font-lock-keywords
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2645 ;; possible bugs regarding fontlocking
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2646 'bibtex-autokey-prefix-string
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2647 'bibtex-autokey-names
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2648 '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
2649 'bibtex-autokey-additional-names
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2650 'bibtex-autokey-transcriptions
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2651 'bibtex-autokey-name-change-strings
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2652 'bibtex-autokey-name-case-convert
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2653 'bibtex-autokey-name-length
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2654 'bibtex-autokey-name-separator
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2655 'bibtex-autokey-year-length
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2656 'bibtex-autokey-year-use-crossref-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2657 'bibtex-autokey-titlewords
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2658 'bibtex-autokey-title-terminators
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2659 'bibtex-autokey-titlewords-stretch
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2660 'bibtex-autokey-titleword-ignore
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2661 'bibtex-autokey-titleword-case-convert
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2662 'bibtex-autokey-titleword-abbrevs
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2663 'bibtex-autokey-titleword-change-strings
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2664 'bibtex-autokey-titleword-length
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2665 'bibtex-autokey-titleword-separator
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2666 'bibtex-autokey-name-year-separator
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2667 'bibtex-autokey-year-title-separator
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2668 'bibtex-autokey-edit-before-use
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2669 'bibtex-autokey-before-presentation-function
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2670 ;; possible bugs regarding automatic labels
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2671 '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
2672 ;; possible format error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2673 'bibtex-help-message
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2674 'bibtex-include-OPTcrossref
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2675 'bibtex-include-OPTkey
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2676 'bibtex-field-kill-ring-max
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2677 'bibtex-entry-kill-ring-max
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2678 ;; user variables which shouldn't cause any errors
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2679 )
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2680 nil nil
20359
7fca0e4ce5e8 (bibtex-maintainer-address, bibtex-submit-bug-report):
Richard M. Stallman <rms@gnu.org>
parents: 19638
diff changeset
2681 (concat "To the bibtex.el maintainer:
7fca0e4ce5e8 (bibtex-maintainer-address, bibtex-submit-bug-report):
Richard M. Stallman <rms@gnu.org>
parents: 19638
diff changeset
2682
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2683 I want to report a bug on Emacs BibTeX mode.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2684 I've read the `Bugs' section in the `Emacs' info page, so I know how
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2685 to make a clear and unambiguous report. I have started a fresh Emacs
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2686 via `"invocation-name " --no-init-file --no-site-file', thereafter (in
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2687 case I'm reporting on a version of `bibtex.el' which is not part of
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2688 the standard emacs distribution) I loaded the questionable version
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2689 of `bibtex.el' with `M-x load-file', and then, to produce the buggy
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2690 behaviour, I did the following:")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2691 (message nil))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2692
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2693 (defun bibtex-entry (entry-type)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2694 "Insert a new BibTeX entry.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
2695 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
2696 (interactive (let* ((completion-ignore-case t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2697 (e-t (completing-read
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2698 "Entry Type: "
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2699 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
2700 nil t nil 'bibtex-entry-type-history)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2701 (list e-t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2702 (if (not bibtex-keys)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2703 (bibtex-parse-keys nil t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2704 (let* (required
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2705 optional
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2706 (key
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2707 (if bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2708 (completing-read
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2709 (format "%s key: " entry-type)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2710 bibtex-keys nil nil nil 'bibtex-key-history)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2711 (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
2712 (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
2713 (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
2714 (if (not e)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2715 (error "Bibtex entry type %s not defined" entry-type))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2716 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2717 (member entry-type bibtex-include-OPTcrossref)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2718 c-ref)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2719 (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
2720 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
2721 (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
2722 optional (elt r-n-o 1)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2723 (if bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2724 (bibtex-find-entry-location key)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2725 (bibtex-move-outside-of-entry))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2726 (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
2727 (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
2728 (if key
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2729 (insert key))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2730 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2731 (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
2732 (if (member entry-type bibtex-include-OPTcrossref)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2733 (bibtex-make-optional-field '("crossref")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2734 (if bibtex-include-OPTkey
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2735 (if (or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2736 (stringp bibtex-include-OPTkey)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2737 (fboundp bibtex-include-OPTkey))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2738 (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
2739 (list "key" nil bibtex-include-OPTkey))
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2740 (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
2741 (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
2742 (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
2743 (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
2744 (insert ","))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2745 (insert "\n")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2746 (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
2747 (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
2748 (bibtex-next-field t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2749 (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
2750
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2751 (defun bibtex-print-help-message ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2752 "Prints helpful information about current field in current BibTeX entry."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2753 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2754 (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
2755 (pnt (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2756 (field-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2757 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2758 (condition-case errname
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2759 (bibtex-enclosing-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2760 (search-failed
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2761 (goto-char pnt)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2762 (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
2763 (let ((mb (match-beginning bibtex-name-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2764 (me (match-end bibtex-name-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2765 (goto-char mb)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2766 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2767 (if (looking-at "OPT\\|ALT")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2768 (+ 3 mb)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2769 mb)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2770 me))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2771 (reference-type
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2772 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2773 (re-search-backward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2774 bibtex-reference-maybe-empty-head nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2775 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2776 (1+ (match-beginning bibtex-type-in-head))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2777 (match-end bibtex-type-in-head))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2778 (entry-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2779 (assoc-ignore-case reference-type
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2780 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
2781 (c-r-list (elt entry-list 2))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2782 (req-opt-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2783 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2784 (member reference-type bibtex-include-OPTcrossref)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2785 c-r-list)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2786 c-r-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2787 (elt entry-list 1)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2788 (list-of-entries (append
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2789 (elt req-opt-list 0)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2790 (elt req-opt-list 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2791 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
2792 (if (member
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2793 reference-type
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2794 bibtex-include-OPTcrossref)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2795 '(("crossref"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2796 "Label of the crossreferenced entry")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2797 (if bibtex-include-OPTkey
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2798 '(("key"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2799 "Key used for label creation if author and editor fields are missing"))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2800 (goto-char pnt)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2801 (let ((comment (assoc-ignore-case field-name list-of-entries)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2802 (if comment
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2803 (message (elt comment 1))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2804 (message "NO COMMENT AVAILABLE")))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2805
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2806 (defun bibtex-make-field (e-t &optional called-by-yank)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2807 "Makes a field named E-T in current BibTeX entry.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2808 This function is for interactive and non-interactive purposes. To call
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2809 it interactively, just give it no arguments and enter the field name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2810 using the minibuffer."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2811 (interactive "*P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2812 (if (not e-t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2813 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2814 e-t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2815 (let* ((reference-type
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2816 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2817 (bibtex-enclosing-reference-maybe-empty-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2818 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2819 (1+ (match-beginning bibtex-type-in-head))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2820 (match-end bibtex-type-in-head))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2821 (fl
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2822 (car (cdr (assoc-ignore-case
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2823 reference-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
2824 (field-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2825 (append
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2826 (elt fl 0) (elt fl 1) 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
2827 (if bibtex-include-OPTcrossref '(("crossref" nil)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2828 (if bibtex-include-OPTkey '(("key" nil)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2829 (completion-ignore-case t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2830 (completing-read
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2831 "BibTeX field name: " field-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2832 nil nil nil bibtex-field-history))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2833 (if (not (consp e-t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2834 (setq e-t (list e-t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2835 (if (equal (length e-t) 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2836 (setq e-t (append e-t (list ""))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2837 (if (equal (length e-t) 2)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2838 (setq e-t (append e-t (list ""))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2839 (let ((name (if (elt e-t 3)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2840 (concat "ALT" (car e-t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2841 (car e-t))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2842 (if (or (interactive-p) called-by-yank)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2843 (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
2844 (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
2845 (if (looking-at "[}\"]")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2846 (forward-char))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2847 (insert ",\n")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2848 (indent-to-column
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2849 (+ bibtex-entry-offset bibtex-field-indentation))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2850 (insert name " ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2851 (if bibtex-align-at-equal-sign
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2852 (indent-to-column
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2853 (+ bibtex-entry-offset (- bibtex-text-indentation 2))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2854 (insert "= ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2855 (if (not bibtex-align-at-equal-sign)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2856 (indent-to-column
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2857 (+ bibtex-entry-offset bibtex-text-indentation)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2858 (insert (if called-by-yank
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2859 ""
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2860 (bibtex-field-left-delimiter))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2861 (let ((init (elt e-t 2)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2862 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2863 ((stringp init)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2864 init)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2865 ((fboundp init)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2866 (funcall init))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2867 (t
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2868 (error "%s is neither a string nor a function" init))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2869 (if called-by-yank
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2870 ""
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2871 (bibtex-field-right-delimiter)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2872 (if (interactive-p)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2873 (forward-char -1))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2874
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2875 (defun 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
2876 "Move to beginning of BibTeX entry.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2877 If inside an entry, move to the beginning of it, otherwise move to the
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2878 beginning of the previous entry.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
2879 If called from a program, this function returns 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
2880 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2881 (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
2882 (if (looking-at "@")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2883 (forward-char))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2884 (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
2885
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2886 (defun 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
2887 "Move to end of BibTeX entry.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2888 If inside an entry, move to the end of it, otherwise move to the end
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2889 of the previous entry.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
2890 If called from a program, this function returns 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
2891 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2892 (let ((case-fold-search t)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2893 (valid-entry-head
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2894 (concat "[ \t]*@[ \t]*\\("
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2895 (mapconcat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2896 (lambda (type)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2897 (concat "\\(" (car type) "\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2898 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
2899 "\\|")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2900 "\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2901 (org (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2902 (pnt (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
2903 err)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2904 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2905 ((looking-at "[ \t]*@[ \t]*string[ \t\n]*[({]")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2906 (if (not (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2907 (re-search-forward bibtex-string nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2908 (equal (match-beginning 0) pnt)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2909 (setq err t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2910 ((looking-at "[ \t]*@[ \t]*preamble[ \t\n]*")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2911 (goto-char (match-end 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2912 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2913 ((looking-at "(")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2914 (if (not (re-search-forward ")[ \t]*\n\n" nil 'move))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2915 (setq err t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2916 ((looking-at "{")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2917 (if (not (re-search-forward "}[ \t]*\n\n" nil 'move))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2918 (setq err t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2919 (t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2920 (setq err t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2921 (if (not err)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2922 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2923 (goto-char (match-beginning 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2924 (forward-char))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2925 ((looking-at valid-entry-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2926 (bibtex-search-reference t nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2927 (if (not (equal (match-beginning 0) pnt))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2928 (setq err t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2929 (t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2930 (if (interactive-p)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2931 (message "Not on a known BibTeX entry."))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2932 (goto-char org)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2933 (if err
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2934 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2935 (goto-char pnt)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2936 (error "Syntactical incorrect 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
2937 (point))
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2938
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2939 (defun bibtex-reposition-window (arg)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2940 "Make the current BibTeX entry visible."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2941 (interactive "P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2942 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2943 (goto-char
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2944 (/ (+ (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
2945 (recenter arg)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2946
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2947 (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
2948 "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
2949 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2950 (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
2951 (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
2952
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2953 (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
2954 "Count number of entries in current buffer or region.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2955 With prefix argument COUNT-STRING-ENTRIES it counts all entries,
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2956 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
2957 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
2958 (interactive "P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2959 (let ((pnt (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2960 (start-point
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2961 (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
2962 (region-beginning)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2963 (bibtex-beginning-of-first-entry)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2964 (end-point
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2965 (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
2966 (region-end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2967 (point-max)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2968 (number 0)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2969 (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
2970 (not count-string-entries)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2971 (save-restriction
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2972 (narrow-to-region start-point end-point)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2973 (goto-char start-point)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
2974 (bibtex-map-entries
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2975 (lambda (current)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2976 (setq number (1+ number)))))
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
2977 (message (concat (if (bibtex-mark-active) "Region" "Buffer")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2978 " contains %d entries.") number)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2979 (goto-char pnt)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2980
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2981 (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
2982 "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
2983 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2984 (ispell-region (bibtex-beginning-of-entry) (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
2985
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2986 (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
2987 "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
2988 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2989 (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
2990 (pnt (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
2991 (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
2992 (if (not
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2993 (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2994 (bibtex-cfield "abstract" bibtex-field-text) pnt t))
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
2995 (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
2996 (ispell-region (match-beginning bibtex-text-in-cfield)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2997 (match-end bibtex-text-in-cfield)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2998
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
2999 (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
3000 "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
3001 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3002 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3003 (narrow-to-region
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3004 (bibtex-beginning-of-entry) (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
3005
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3006 (defun bibtex-hide-entry-bodies (&optional arg)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3007 "Hide all lines between first and last BibTeX entries not beginning with @.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3008 With prefix argument ARG, show all text."
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3009 (interactive "P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3010 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3011 (let ((buffer-read-only nil))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3012 (if arg
22649
4934aaa2055c (bibtex-hide-entry-bodies): When entry
Richard M. Stallman <rms@gnu.org>
parents: 22599
diff changeset
3013 (subst-char-in-region (point-min) (point-max) ?\r ?\n t)
4934aaa2055c (bibtex-hide-entry-bodies): When entry
Richard M. Stallman <rms@gnu.org>
parents: 22599
diff changeset
3014 (let ((pos (point-max)))
4934aaa2055c (bibtex-hide-entry-bodies): When entry
Richard M. Stallman <rms@gnu.org>
parents: 22599
diff changeset
3015 (goto-char (point-max))
4934aaa2055c (bibtex-hide-entry-bodies): When entry
Richard M. Stallman <rms@gnu.org>
parents: 22599
diff changeset
3016 (while (re-search-backward "^@" nil t)
4934aaa2055c (bibtex-hide-entry-bodies): When entry
Richard M. Stallman <rms@gnu.org>
parents: 22599
diff changeset
3017 (subst-char-in-region (point) pos ?\n ?\r t)
4934aaa2055c (bibtex-hide-entry-bodies): When entry
Richard M. Stallman <rms@gnu.org>
parents: 22599
diff changeset
3018 (if (not (bobp)) (forward-char -1))
4934aaa2055c (bibtex-hide-entry-bodies): When entry
Richard M. Stallman <rms@gnu.org>
parents: 22599
diff changeset
3019 (setq pos (point)))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3020 (setq selective-display (not arg)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3021
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3022 (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
3023 "Sort BibTeX buffer alphabetically by key.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3024 Text outside of BibTeX entries is not affected. If
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3025 `bibtex-sort-ignore-string-entries' is non-nil, @String entries will be
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3026 ignored."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3027 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3028 (save-restriction
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3029 (narrow-to-region
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3030 (bibtex-beginning-of-first-entry)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3031 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3032 (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
3033 (bibtex-end-of-entry)))
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3034 (bibtex-skip-to-valid-entry)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3035 (sort-subr
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3036 nil
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3037 ;; NEXTREC function
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3038 'bibtex-skip-to-valid-entry
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3039 ;; ENDREC function
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3040 '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
3041 ;; STARTKEY function
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3042 (lambda ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3043 (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
3044 (re-search-forward bibtex-reference-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3045 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3046 (match-beginning bibtex-key-in-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3047 (match-end bibtex-key-in-head)))))))
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3048
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3049 (defun bibtex-find-entry-location (entry-name &optional ignore-dups)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3050 "Looking for place to put the BibTeX entry named ENTRY-NAME.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3051 Performs a binary search (therefore, buffer is assumed to be in sorted
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3052 order, without duplicates (see \\[bibtex-validate]), if it is
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3053 not, `bibtex-find-entry-location' will fail). If entry-name is already
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3054 used as a reference key, an error is signaled. However, if optional
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3055 variable IGNORE-DUPS is non-nil, no error messages about duplicate
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3056 entries are signaled, but the error handling is assumed to be made in
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3057 the calling function.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3058 The value is nil if an duplicate entry error occurred,
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3059 and t in all other cases."
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3060 (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
3061 (left
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3062 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3063 (bibtex-beginning-of-first-entry)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3064 (bibtex-skip-to-valid-entry)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3065 (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
3066 (right
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3067 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3068 (bibtex-beginning-of-last-entry)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3069 (bibtex-skip-to-valid-entry t)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3070 (point)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3071 actual-point
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3072 actual-key
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3073 (done (>= left right))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3074 new
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3075 dup)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3076 (while (not done)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3077 (setq actual-point (/ (+ left right) 2))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3078 (goto-char actual-point)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3079 (bibtex-skip-to-valid-entry t)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3080 (setq actual-key
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3081 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3082 (re-search-forward bibtex-reference-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3083 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3084 (match-beginning bibtex-key-in-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3085 (match-end bibtex-key-in-head))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3086 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3087 ((string-lessp entry-name actual-key)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3088 (setq new (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
3089 (if (equal right new)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3090 (setq done t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3091 (setq right new)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3092 ((string-lessp actual-key entry-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3093 (setq new (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
3094 (if (equal left new)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3095 (setq done t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3096 (setq left new)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3097 ((string-equal actual-key entry-name)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3098 (setq dup t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3099 done t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3100 (if (not ignore-dups)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3101 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3102 (bibtex-beginning-of-entry)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3103 (error "Entry with key `%s' already exists" entry-name))))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3104 (if dup
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3105 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3106 (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
3107 nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3108 (goto-char right)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3109 (setq actual-key
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3110 (if (looking-at bibtex-reference-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3111 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3112 (match-beginning bibtex-key-in-reference)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3113 (match-end bibtex-key-in-reference))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3114 (if (or
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3115 (not actual-key)
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3116 (string-lessp actual-key entry-name))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3117 ;; buffer contains no valid entries or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3118 ;; greater than last entry --> append
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3119 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3120 (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
3121 (if (not (bobp))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3122 (newline (forward-line 2)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3123 (beginning-of-line))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3124 (goto-char right))
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3125 t)))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3126
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3127 (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
3128 "Validate if buffer or 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
3129 Only known reference types are checked, so you can put comments
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3130 outside of entries.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3131 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
3132 required fields and questionable month fields as well.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3133 If mark is active, it validates current region, if not whole buffer.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3134 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
3135 (interactive "P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3136 (let (error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3137 syntax-error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3138 (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
3139 (valid-bibtex-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3140 (concat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3141 "@[ \t]*\\(\\(string\\)\\|"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3142 (mapconcat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3143 (lambda (type)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3144 (concat "\\(" (car type) "\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3145 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
3146 "\\|")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3147 "\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3148 (pnt (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3149 (start-point
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
3150 (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
3151 (region-beginning)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3152 (bibtex-beginning-of-first-entry)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3153 (end-point
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
3154 (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
3155 (region-end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3156 (point-max))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3157 (save-restriction
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3158 (narrow-to-region start-point end-point)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3159 ;; looking if entries fit syntactical structure
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3160 (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
3161 (bibtex-progress-message "Checking syntactical structure")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3162 (while (re-search-forward "^[ \t]*@" nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3163 (bibtex-progress-message)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3164 (forward-char -1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3165 (let ((p (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3166 (must-match
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3167 (looking-at valid-bibtex-entry)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3168 (if (not must-match)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3169 (forward-char)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3170 (let (bibtex-sort-ignore-string-entries)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3171 (bibtex-skip-to-valid-entry))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3172 (if (equal (point) p)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3173 (forward-char)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3174 (goto-char p)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3175 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3176 error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3177 (cons (list
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3178 (bibtex-current-line)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3179 "Syntax error (check esp. commas, braces, and quotes)")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3180 error-list))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3181 (forward-char)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3182 (bibtex-progress-message 'done)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3183 (if error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3184 (setq syntax-error t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3185 ;; looking for correct sort order and duplicates (only if
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3186 ;; there were no syntax errors)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3187 (if bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3188 (let (previous)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3189 (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
3190 (bibtex-progress-message "Checking correct sort order")
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3191 (bibtex-map-entries
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3192 (lambda (current)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3193 (bibtex-progress-message)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3194 (cond ((or (not previous)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3195 (string< previous current))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3196 (setq previous current))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3197 ((string-equal previous current)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3198 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3199 error-list
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3200 (cons (list (bibtex-current-line)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3201 "Duplicate key with previous")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3202 error-list)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3203 (t
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3204 (setq previous current
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3205 error-list
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3206 (cons (list (bibtex-current-line)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3207 "Entries out of order")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3208 error-list))))))
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 'done)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3210 (if test-thoroughly
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3211 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3212 (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
3213 (bibtex-progress-message
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3214 "Checking required fields and month fields")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3215 (let ((bibtex-sort-ignore-string-entries t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3216 (questionable-month
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3217 (concat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3218 "[{\"]\\("
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3219 (mapconcat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3220 (lambda (mon)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3221 (concat "\\(" (car mon) "\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3222 bibtex-predefined-month-strings
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3223 "\\|")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3224 "\\)[}\"]")))
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3225 (bibtex-map-entries
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3226 (lambda (current)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3227 (bibtex-progress-message)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3228 (let* ((beg (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
3229 (end (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
3230 (entry-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3231 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3232 (goto-char beg)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3233 (bibtex-search-reference nil end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3234 (assoc-ignore-case
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3235 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3236 (1+ (match-beginning bibtex-type-in-head))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3237 (match-end bibtex-type-in-head))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3238 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
3239 (req (copy-sequence (elt (elt entry-list 1) 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3240 (creq (copy-sequence (elt (elt entry-list 2) 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3241 crossref-there)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3242 (goto-char beg)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3243 (while (re-search-forward bibtex-field end t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3244 (let ((field-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3245 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3246 (match-beginning bibtex-name-in-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3247 (match-end bibtex-name-in-field))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3248 (if (and (equal (downcase field-name) "month")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3249 (string-match
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3250 questionable-month
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3251 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3252 (match-beginning bibtex-text-in-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3253 (match-end bibtex-text-in-field))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3254 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3255 error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3256 (cons
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3257 (list
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3258 (bibtex-current-line)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3259 "Questionable month field (delimited string)")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3260 error-list)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3261 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3262 req
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3263 (delete (assoc-ignore-case field-name req) req)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3264 creq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3265 (delete (assoc-ignore-case field-name creq) creq))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3266 (if (equal (downcase field-name) "crossref")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3267 (setq crossref-there t))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3268 (if crossref-there
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3269 (setq req creq))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3270 (if (or (> (length req) 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3271 (and (= (length req) 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3272 (not (elt (car req) 3))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3273 ;; two (or more) fields missed or one field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3274 ;; missed and this isn't flagged alternative
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3275 ;; (notice that this fails if there are more
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3276 ;; than two alternatives in a BibTeX entry,
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3277 ;; which isn't the case momentarily)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3278 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3279 error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3280 (cons
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3281 (list (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3282 (bibtex-beginning-of-entry)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3283 (bibtex-current-line))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3284 (concat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3285 "Required field \""
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3286 (car (car req))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3287 "\" missing"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3288 error-list)))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3289 (bibtex-progress-message 'done)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3290 (goto-char pnt)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3291 (if error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3292 (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
3293 (dir default-directory))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3294 (setq error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3295 (sort error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3296 (lambda (a b)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3297 (< (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
3298 (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
3299 (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
3300 (switch-to-buffer
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3301 (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
3302 ;; 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
3303 ;; 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
3304 (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
3305 (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
3306 (compilation-mode)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3307 (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
3308 (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
3309 (insert
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3310 "BibTeX mode command `bibtex-validate'\n"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3311 (if syntax-error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3312 "Maybe undetected errors due to syntax errors. Correct and validate again."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3313 "")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3314 "\n")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3315 (while error-list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3316 (insert
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3317 bufnam ":" (number-to-string (elt (car error-list) 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3318 ": " (elt (car error-list) 1) "\n")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3319 (setq error-list (cdr error-list)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3320 (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
3321 (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
3322 ;; this is necessary to avoid reparsing of buffer if you
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3323 ;; switch to compilation buffer and enter
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3324 ;; `compile-goto-error'
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3325 (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
3326 (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
3327 (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
3328 (other-window -1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3329 ;; return nil
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3330 nil)
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
3331 (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
3332 (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
3333 (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
3334 t)))
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-next-field (arg)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3337 "Finds 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
3338 (interactive "P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3339 (bibtex-inside-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3340 (let ((start (point)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3341 (condition-case ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3342 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3343 (bibtex-enclosing-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3344 (goto-char (match-end 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3345 (forward-char 2))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3346 (error
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3347 (goto-char start)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3348 (end-of-line)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3349 (forward-char))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3350 (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
3351
18502
708870732e5d (bibtex-kill-field, bibtex-find-text): Killing a field moves to the next line.
Richard M. Stallman <rms@gnu.org>
parents: 18248
diff changeset
3352 (defun bibtex-find-text (arg &optional as-if-interactive silent)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3353 "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
3354 (interactive "P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3355 (bibtex-inside-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3356 (if (bibtex-enclosing-field (or (interactive-p) as-if-interactive))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3357 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3358 (if arg
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3359 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3360 (goto-char (match-beginning bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3361 (if (looking-at "[{\"]")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3362 (forward-char)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3363 (goto-char (match-end bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3364 (if (or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3365 (= (preceding-char) ?})
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3366 (= (preceding-char) ?\"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3367 (forward-char -1)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3368 (if bibtex-help-message
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3369 (bibtex-print-help-message)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3370 (beginning-of-line)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3371 (cond
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3372 ((looking-at bibtex-string)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3373 (goto-char
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3374 (if arg
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3375 (match-beginning bibtex-text-in-string)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3376 (match-end bibtex-text-in-string))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3377 ((looking-at bibtex-reference-maybe-empty-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3378 (goto-char
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3379 (if arg
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3380 (match-beginning bibtex-key-in-head)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3381 (match-end 0))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3382 (t
18502
708870732e5d (bibtex-kill-field, bibtex-find-text): Killing a field moves to the next line.
Richard M. Stallman <rms@gnu.org>
parents: 18248
diff changeset
3383 (if (not silent)
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3384 (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
3385
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3386 (defun 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
3387 "Removes the string starting optional/alternative fields.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3388 Aligns text and goes thereafter to end of text."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3389 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3390 (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
3391 (bibtex-inside-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3392 (bibtex-enclosing-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3393 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3394 (goto-char (match-beginning bibtex-name-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3395 (if (looking-at "OPT\\|ALT")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3396 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3397 (delete-char (length "OPT"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3398 ;; make field non-OPT
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3399 (search-forward "=")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3400 (forward-char -1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3401 (delete-horizontal-space)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3402 (if bibtex-align-at-equal-sign
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3403 (indent-to-column (- bibtex-text-indentation 2))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3404 (insert " "))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3405 (search-forward "=")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3406 (delete-horizontal-space)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3407 (if bibtex-align-at-equal-sign
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3408 (insert " ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3409 (indent-to-column bibtex-text-indentation)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3410 (bibtex-inside-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3411
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3412 (defun bibtex-remove-delimiters ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3413 "Removes \"\" or {} around string."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3414 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3415 (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
3416 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3417 (bibtex-inside-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3418 (bibtex-enclosing-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3419 (let ((start (match-beginning bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3420 (stop (match-end bibtex-text-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3421 (goto-char start)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3422 (while (re-search-forward bibtex-field-string stop t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3423 (let ((beg (copy-marker (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3424 (end (copy-marker (match-end 0))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3425 (goto-char beg)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3426 (if (looking-at "[{\"]")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3427 (delete-char 1))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3428 (goto-char end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3429 (forward-char -1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3430 (if (looking-at "[}\"]")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3431 (delete-char 1))))))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3432
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3433 (defun bibtex-kill-field (&optional copy-only)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3434 "Kills the entire enclosing BibTeX field.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3435 With prefix arg COPY-ONLY, copy the current field to `bibtex-field-kill-ring,'
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3436 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
3437 (interactive "P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3438 (let ((pnt (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3439 (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
3440 (bibtex-inside-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3441 (bibtex-enclosing-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3442 (let ((the-end (match-end 0))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3443 (the-beginning (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3444 (goto-char the-end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3445 (skip-chars-forward " \t\n,")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3446 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3447 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
3448 (cons
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3449 (list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3450 'field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3451 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3452 (match-beginning bibtex-name-in-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3453 (match-end bibtex-name-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3454 (buffer-substring-no-properties
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3455 (match-beginning bibtex-text-in-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3456 (match-end bibtex-text-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3457 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
3458 (if (> (length bibtex-field-kill-ring) bibtex-field-kill-ring-max)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3459 (setcdr
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3460 (nthcdr (1- bibtex-field-kill-ring-max) 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
3461 nil))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3462 (setq bibtex-field-kill-ring-yank-pointer 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
3463 (if copy-only
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3464 (goto-char pnt)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3465 (delete-region the-beginning the-end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3466 (let (bibtex-help-message)
18502
708870732e5d (bibtex-kill-field, bibtex-find-text): Killing a field moves to the next line.
Richard M. Stallman <rms@gnu.org>
parents: 18248
diff changeset
3467 (bibtex-find-text nil t t)))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3468 (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
3469
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3470 (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
3471 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3472 (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
3473
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3474 (defun bibtex-kill-entry (&optional copy-only)
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3475 "Kill the entire enclosing BibTeX reference entry.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3476 With prefix arg COPY-ONLY the current reference entry to
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3477 `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
3478 (interactive "P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3479 (let ((pnt (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3480 (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
3481 (beg (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
3482 (end
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3483 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3484 (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
3485 (if (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3486 bibtex-reference-maybe-empty-head nil 'move)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3487 (goto-char (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3488 (point))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3489 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3490 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
3491 (cons
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3492 (list 'entry (buffer-substring-no-properties beg end))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3493 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
3494 (if (> (length bibtex-entry-kill-ring) bibtex-entry-kill-ring-max)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3495 (setcdr
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3496 (nthcdr (1- bibtex-entry-kill-ring-max) 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
3497 nil))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3498 (setq bibtex-entry-kill-ring-yank-pointer 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
3499 (if copy-only
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3500 (goto-char pnt)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3501 (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
3502 (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
3503
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3504 (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
3505 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3506 (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
3507
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3508 (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
3509 "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
3510 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
3511 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
3512 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
3513 (interactive "*p")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3514 (bibtex-insert-current-kill (1- n))
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3515 (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
3516
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3517 (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
3518 "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
3519 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
3520 `bibtex-yank-pop'.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3521 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
3522 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
3523 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
3524
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3525 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
3526 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
3527 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
3528
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3529 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
3530 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
3531 (interactive "*p")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3532 (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
3533 (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
3534 (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
3535 (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
3536 (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
3537 (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
3538
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3539 (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
3540 "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
3541 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3542 (bibtex-inside-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3543 (bibtex-enclosing-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3544 (goto-char (match-beginning bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3545 (delete-region (point) (match-end bibtex-text-in-field))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3546 (insert (concat (bibtex-field-left-delimiter)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3547 (bibtex-field-right-delimiter)) )
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3548 (bibtex-find-text t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3549
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
3550 (defun bibtex-pop-previous (arg)
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3551 "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
3552 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
3553 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
3554 (interactive "p")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
3555 (bibtex-pop arg 'previous))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3556
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3557 (defun bibtex-pop-next (arg)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3558 "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
3559 With arg, goes down ARG entries. Repeated, goes down so many times. May be
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3560 intermixed with \\[bibtex-pop-previous] (bibtex-pop-previous)."
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3561 (interactive "p")
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
3562 (bibtex-pop arg 'next))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3563
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3564 (defun bibtex-clean-entry (&optional new-label called-by-reformat)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3565 "Finish editing the current BibTeX entry and clean it up.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3566 Checks that no required fields are empty and formats entry dependent
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3567 on the value of bibtex-entry-format.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3568 If label of entry is empty or a prefix argument is given, calculate a
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3569 new entry label (note: this only will work if fields in entry begin on
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3570 separate lines prior to calling bibtex-clean-entry or if 'realign is
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3571 contained in bibtex-entry-format).
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3572 Don't call this on `string' or `preamble' entries.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3573 At end of the cleaning process, the functions in
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3574 bibtex-clean-entry-hook are called with region narrowed to entry."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3575 (interactive "P")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3576 (bibtex-format-entry)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3577 (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
3578 (eob (bibtex-end-of-entry))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3579 (key (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3580 (bibtex-beginning-of-entry)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3581 (if (re-search-forward
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3582 bibtex-reference-head eob t)
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
3583 (buffer-substring-no-properties
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3584 (match-beginning bibtex-key-in-head)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3585 (match-end bibtex-key-in-head))))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3586 (if (or
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3587 new-label
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3588 (not key))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3589 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3590 (let ((autokey
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3591 (if bibtex-autokey-edit-before-use
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3592 (read-from-minibuffer
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3593 "Key to use: " (bibtex-generate-autokey) nil nil
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3594 'bibtex-key-history)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3595 (bibtex-generate-autokey))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3596 (bibtex-beginning-of-entry)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3597 (re-search-forward bibtex-reference-maybe-empty-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3598 (if (match-beginning bibtex-key-in-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3599 (delete-region (match-beginning bibtex-key-in-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3600 (match-end bibtex-key-in-head)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3601 (insert autokey)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3602 (let* ((start (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
3603 (end (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3604 (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
3605 (if (re-search-forward
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3606 bibtex-reference-maybe-empty-head nil 'move)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3607 (goto-char (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3608 (point)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3609 (entry (buffer-substring start end)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3610 (delete-region start end)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3611 (let ((success
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3612 (or
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3613 called-by-reformat
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3614 (not bibtex-maintain-sorted-entries)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3615 (bibtex-find-entry-location autokey t))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3616 (insert entry)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3617 (forward-char -1)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3618 (bibtex-beginning-of-entry)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
3619 (re-search-forward bibtex-reference-head)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3620 (if (not success)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3621 (error
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3622 "New inserted reference yields duplicate key"))))))))
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3623 (if (not called-by-reformat)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3624 (save-excursion
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3625 (save-restriction
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3626 (narrow-to-region
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3627 (bibtex-beginning-of-entry) (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
3628 (bibtex-parse-keys t nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3629 (run-hooks 'bibtex-clean-entry-hook)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3630
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3631 (defun bibtex-fill-entry ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3632 "Fill current entry.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3633 Realigns entry, so that every field starts on a separate line. Field
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3634 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
3635 column `bibtex-text-indentation' and continuation lines start here, too.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3636 If `bibtex-align-at-equal-sign' is non-nil, align equal signs also."
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3637 (interactive "*")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3638 (let ((pnt (copy-marker (point)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3639 (end (copy-marker (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
3640 (bibtex-beginning-of-entry)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3641 (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
3642 (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
3643 (while (re-search-forward bibtex-field end t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3644 (let* ((begin-field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3645 (copy-marker (match-beginning 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3646 (end-field
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3647 (copy-marker (match-end 0)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3648 (begin-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3649 (copy-marker (match-beginning bibtex-name-in-field)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3650 (end-name
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3651 (copy-marker (match-end bibtex-name-in-field))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3652 (goto-char begin-field)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3653 (forward-char)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3654 (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
3655 (open-line 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3656 (forward-char)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3657 (indent-to-column
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3658 (+ bibtex-entry-offset bibtex-field-indentation))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3659 (re-search-forward "[ \t\n]*=" end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3660 (replace-match "=")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3661 (forward-char -1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3662 (if bibtex-align-at-equal-sign
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3663 (indent-to-column
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3664 (+ bibtex-entry-offset (- bibtex-text-indentation 2)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3665 (insert " "))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3666 (forward-char)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3667 (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
3668 (if bibtex-align-at-equal-sign
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3669 (insert " ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3670 (indent-to-column bibtex-text-indentation))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3671 (while (re-search-forward "[ \t\n]+" end-field 'move)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3672 (replace-match " "))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3673 (bibtex-do-auto-fill)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3674 (if (looking-at ",")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3675 (forward-char))
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3676 (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
3677 (open-line 1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3678 (forward-char)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3679 (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
3680 (goto-char pnt)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3681
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3682 (defun bibtex-reformat (&optional additional-options called-by-convert-alien)
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3683 "Reformat all BibTeX entries in buffer or region.
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3684 With prefix argument, read options for reformatting from minibuffer.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3685 With \\[universal-argument] \\[universal-argument] prefix argument, reuse previous answers (if any) again.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3686 If mark is active it reformats 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
3687 (interactive "*P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3688 (let* ((pnt (point))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3689 (use-previous-options
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3690 (and (equal (prefix-numeric-value additional-options) 16)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3691 (or bibtex-reformat-previous-options
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3692 bibtex-reformat-previous-labels)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3693 (bibtex-entry-format
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3694 (if additional-options
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3695 (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
3696 bibtex-reformat-previous-options
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3697 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3698 bibtex-reformat-previous-options
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3699 (delq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3700 nil
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3701 (list
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3702 (if (or
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3703 called-by-convert-alien
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3704 (y-or-n-p
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3705 "Realign entries (recommended for files not created by BibTeX mode)? "))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3706 'realign)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3707 (if (y-or-n-p
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3708 "Remove empty optional and alternative fields? ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3709 'opts-or-alts)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3710 (if (y-or-n-p
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3711 "Remove delimiters around pure numerical fields? ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3712 'numerical-fields)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3713 (if (y-or-n-p (concat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3714 (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
3715 "Insert"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3716 "Remove")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3717 " comma at end of entry? "))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3718 'last-comma)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3719 (if (y-or-n-p
18502
708870732e5d (bibtex-kill-field, bibtex-find-text): Killing a field moves to the next line.
Richard M. Stallman <rms@gnu.org>
parents: 18248
diff changeset
3720 "Replace double page dashes by single ones? ")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3721 'page-dashes)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3722 (if (y-or-n-p
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3723 "Force delimiters? ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3724 'delimiters)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3725 (if (y-or-n-p
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3726 "Unify case of entry types and field names? ")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3727 'unify-case)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3728 '(realign)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3729 (labels
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3730 (if additional-options
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3731 (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
3732 bibtex-reformat-previous-labels
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3733 (setq
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3734 bibtex-reformat-previous-labels
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3735 (y-or-n-p "Generate automatically new reference labels? ")))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3736 bibtex-autokey-edit-before-use
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3737 (bibtex-sort-ignore-string-entries t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3738 (start-point
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
3739 (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
3740 (region-beginning)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3741 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3742 (bibtex-beginning-of-first-entry)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3743 (bibtex-skip-to-valid-entry)
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3744 (point))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3745 (end-point
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
3746 (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
3747 (region-end)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3748 (point-max)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3749 (valid-bibtex-entry
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3750 (concat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3751 "[ \t\n]+\\(@[ \t]*\\("
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3752 (mapconcat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3753 (lambda (type)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3754 (concat "\\(" (car type) "\\)"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3755 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
3756 "\\|")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3757 "\\)\\)")))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3758 (save-restriction
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3759 (narrow-to-region start-point end-point)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3760 (if (memq 'realign bibtex-entry-format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3761 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3762 (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
3763 (while (re-search-forward valid-bibtex-entry nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3764 (replace-match "\n\\1"))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3765 (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
3766 (bibtex-progress-message "Formatting" 1)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3767 (bibtex-map-entries
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3768 (lambda (current)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3769 (bibtex-progress-message)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3770 (bibtex-clean-entry labels labels)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3771 (if (memq 'realign bibtex-entry-format)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3772 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3773 (bibtex-end-of-entry)
18247
ae094c1a4334 (bibtex-delete-whitespace, bibtex-current-line)
Richard M. Stallman <rms@gnu.org>
parents: 18212
diff changeset
3774 (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
3775 (open-line 2)))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3776 (bibtex-progress-message 'done))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3777 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3778 labels
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3779 bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3780 (not called-by-convert-alien))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3781 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3782 (bibtex-sort-buffer)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3783 (setq bibtex-keys nil)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3784 (bibtex-parse-keys nil t t)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3785 (goto-char pnt)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3786
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3787 (defun bibtex-convert-alien (&optional do-additional-reformatting)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3788 "Converts an alien BibTeX buffer to be fully usable by BibTeX mode.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3789 If a file doesn't confirm with some standards used by BibTeX mode,
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3790 some of the high-level features of BibTeX mode won't be available.
19461
6b67f20dd710 Many doc fixes.
Richard M. Stallman <rms@gnu.org>
parents: 19460
diff changeset
3791 This function tries to convert current buffer to confirm with these standards.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3792 With prefix argument DO-ADDITIONAL-REFORMATTING
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3793 non-nil, read options for reformatting entries from minibuffer."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3794 (interactive "*P")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3795 (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
3796 (sit-for 1 nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3797 (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
3798 (while (re-search-forward "[ \t\n]+@" nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3799 (replace-match "\n@"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3800 (message
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3801 "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
3802 (sit-for 5 nil t)
20907
9a55a557cb5a (bibtex-autokey-names): Change number tag to integer.
Richard M. Stallman <rms@gnu.org>
parents: 20866
diff changeset
3803 (if (let ((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
3804 bibtex-maintain-sorted-entries)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3805 (bibtex-validate))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3806 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3807 (message "Starting to reformat entries...")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3808 (sit-for 2 nil t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3809 (bibtex-reformat do-additional-reformatting t)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3810 (if bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3811 (progn
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3812 (message "Starting to sort buffer...")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3813 (bibtex-sort-buffer)))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3814 (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
3815 (message "Buffer is now parsable. Please save it."))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3816
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3817 (defun bibtex-complete-string ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3818 "Complete word fragment before point to longest prefix of a defined string.
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3819 If point is not after the part of a word, all strings are listed.
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3820 Remove surrounding delimiters if complete string could be expanded."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3821 (interactive "*")
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3822 (bibtex-complete bibtex-strings t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3823
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3824 (defun bibtex-complete-key ()
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3825 "Complete word fragment before point to longest prefix of a defined key.
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3826 If point is not after the part of a word, all keys are listed. This
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3827 function is most useful in completing crossref entries."
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3828 (interactive "*")
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3829 (if (not bibtex-keys)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3830 (bibtex-parse-keys nil t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3831 (bibtex-complete bibtex-keys))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3832
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3833 (defun bibtex-Article ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3834 "Insert a new BibTeX @Article entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3835 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3836 (bibtex-entry "Article"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3837
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3838 (defun bibtex-Book ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3839 "Insert a new BibTeX @Book entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3840 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3841 (bibtex-entry "Book"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3842
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3843 (defun bibtex-Booklet ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3844 "Insert a new BibTeX @Booklet entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3845 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3846 (bibtex-entry "Booklet"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3847
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3848 (defun bibtex-InBook ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3849 "Insert a new BibTeX @InBook entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3850 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3851 (bibtex-entry "InBook"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3852
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3853 (defun bibtex-InCollection ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3854 "Insert a new BibTeX @InCollection entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3855 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3856 (bibtex-entry "InCollection"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3857
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3858 (defun bibtex-InProceedings ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3859 "Insert a new BibTeX @InProceedings entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3860 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3861 (bibtex-entry "InProceedings"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3862
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3863 (defun bibtex-Manual ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3864 "Insert a new BibTeX @Manual entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3865 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3866 (bibtex-entry "Manual"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3867
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3868 (defun bibtex-MastersThesis ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3869 "Insert a new BibTeX @MastersThesis entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3870 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3871 (bibtex-entry "MastersThesis"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3872
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3873 (defun bibtex-Misc ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3874 "Insert a new BibTeX @Misc entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3875 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3876 (bibtex-entry "Misc"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3877
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3878 (defun bibtex-PhdThesis ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3879 "Insert a new BibTeX @PhdThesis entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3880 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3881 (bibtex-entry "PhdThesis"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3882
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3883 (defun bibtex-Proceedings ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3884 "Insert a new BibTeX @Proceedings entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3885 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3886 (bibtex-entry "Proceedings"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3887
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3888 (defun bibtex-TechReport ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3889 "Insert a new BibTeX @TechReport entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3890 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3891 (bibtex-entry "TechReport"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3892
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3893 (defun bibtex-Unpublished ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3894 "Insert a new BibTeX @Unpublished entry; see also `bibtex-entry'."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3895 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3896 (bibtex-entry "Unpublished"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3897
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3898 (defun bibtex-String ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3899 "Insert a new BibTeX @String entry."
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3900 (interactive)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3901 (if (not bibtex-keys)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3902 (bibtex-parse-keys nil t))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3903 (let ((key
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3904 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3905 bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3906 (not 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
3907 (completing-read
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3908 "String key: " bibtex-keys nil nil nil 'bibtex-key-history))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3909 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3910 bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3911 (not 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
3912 (bibtex-find-entry-location key)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3913 (bibtex-move-outside-of-entry))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3914 (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
3915 (insert
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3916 (concat
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3917 "@String"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3918 (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
3919 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3920 bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3921 (not 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
3922 key)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3923 " = "
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3924 (bibtex-field-left-delimiter)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3925 (bibtex-field-right-delimiter)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3926 (bibtex-entry-right-delimiter)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3927 "\n"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3928 (forward-line -1)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3929 (forward-char
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3930 (if (and
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3931 bibtex-maintain-sorted-entries
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3932 (not 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
3933 (+ (length "@String{") (length key) (length " = {"))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3934 (length "@String{")))))
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3935
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3936 (defun bibtex-Preamble ()
22563
2e2a71dfec63 Numerous documentation fixups.
Richard M. Stallman <rms@gnu.org>
parents: 21169
diff changeset
3937 "Insert a new BibTeX @Preamble entry."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3938 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3939 (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
3940 (indent-to-column bibtex-entry-offset)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3941 (insert
18212
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3942 "@Preamble"
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3943 (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
3944 (bibtex-entry-right-delimiter)
3864648e9b4f (bibtex-mode-map): Changed the binding of the C-TAB
Richard M. Stallman <rms@gnu.org>
parents: 17700
diff changeset
3945 "\n")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3946 (forward-line -1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3947 (forward-char 10))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3948
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3949
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
3950 ;; Make BibTeX a Feature
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3951
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
3952 (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
3953
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
3954 ;;; bibtex.el ends here