annotate lisp/textmodes/bibtex.el @ 15186:242bddc25e5a

(syms_of_msdos): Fix typo.
author Richard M. Stallman <rms@gnu.org>
date Wed, 08 May 1996 17:13:31 +0000
parents d68b71228abd
children 2a0d1c1d2746
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
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
3 ;; Copyright (C) 1992, 1994, 1995, 1996 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>
14410
1ae071abac0f Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 14193
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>
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
10 ;; Maintainer: Stefan Schoef <schoef@offis.uni-oldenburg.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"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
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
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
41 ;; Known Bugs:
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
42 ;; 1. using regular expressions to match the entire BibTeX entry dies
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
43 ;; on long entries (e.g. those containing abstracts) since
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
44 ;; the length of regular expression matches is fairly limited.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
45 ;; 2. Calling bibtex-find-text in a string entry results in the
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
46 ;; error message "Can't find enclosing Bibtex field" instead of
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
47 ;; moving to the empty string. [reported by gernot@cs.unsw.oz.au]
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
48
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
49 ;; (current keeper: schoef@offis.uni-oldenburg.de
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
50 ;; previous: alarson@src.honeywell.com)
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
51
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
52 ;;; Code:
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13968
diff changeset
53
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
54 ;; User Options:
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
55
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
56 (defvar bibtex-field-left-delimiter "{"
11373
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
57 "*Set this to { or \" according to your personal preferences.
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
58 This variable is buffer local.")
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
59 (make-variable-buffer-local 'bibtex-field-left-delimiter)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
60
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
61 (defvar bibtex-field-right-delimiter "}"
11373
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
62 "*Set this to } or \" according to your personal preferences.
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
63 This variable is buffer local.")
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
64 (make-variable-buffer-local 'bibtex-field-right-delimiter)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
65
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
66 (defvar bibtex-include-OPTcrossref '("InProceedings" "InCollection")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
67 "*All entries listed here will have an OPTcrossref field.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
68
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
69 (defvar bibtex-include-OPTkey t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
70 "*If non-nil, all entries will have an OPTkey field.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
71
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
72 (defvar bibtex-include-OPTannote t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
73 "*If non-nil, all entries will have an OPTannote field.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
74
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
75 (defvar bibtex-mode-user-optional-fields nil
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
76 "*List of optional fields the user wants to have always present.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
77 Entries should be lists of strings with two elements (first element =
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
78 name of the field, second element = comment to appear in the echo area).")
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80 (defvar bibtex-clean-entry-zap-empty-opts t
561
a819dc25b9e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 257
diff changeset
81 "*If non-nil, bibtex-clean-entry will delete all empty optional fields.")
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
82
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
83 (defvar bibtex-sort-ignore-string-entries t
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
84 "*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
85 That means they are ignored when determining ordering of the buffer
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
86 (e.g. sorting, locating alphabetical position for new entries, etc.).
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
87 This variable is buffer local.")
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
88 (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
89
12770
5488d9efa7de (bibtex-maintain-sorted-entries): Make nil the default.
Richard M. Stallman <rms@gnu.org>
parents: 12700
diff changeset
90 (defvar bibtex-maintain-sorted-entries nil
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
91 "*If non-nil, bibtex-mode maintains all BibTeX entries in sorted order.
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
92 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
93 completion for reference keys in minibuffer, automatic detection of
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
94 duplicates) from bibtex-mode. See also bibtex-sort-ignore-string-entries.
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
95 This variable is buffer local.")
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
96 (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
97
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
98 (defvar bibtex-entry-field-alist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
99 '(
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
100 ("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
101 ("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
102 ("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
103 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
104 (("volume" "Volume of the journal")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
105 ("number" "Number of the journal")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
106 ("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
107 ("pages" "Pages in the journal")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
108 ("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
109 ((("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
110 ("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
111 (("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
112 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
113 ("volume" "Volume of the journal")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
114 ("number" "Number of the journal")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
115 ("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
116 ("pages" "Pages in the journal")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
117 ("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
118 ("Book" . (((("author" "Author1 [and Author2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
119 ("title" "Title of the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
120 ("publisher" "Publishing company")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
121 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
122 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
123 ("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
124 ("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
125 ("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
126 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
127 ("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
128 ("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
129 ("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
130 ("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
131 (("author" "Author1 [and Author2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
132 ("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
133 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
134 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
135 ("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
136 ("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
137 ("InBook" . (((("author" "Author1 [and Author2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
138 ("title" "Title of the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
139 ("chapter" "Chapter in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
140 ("publisher" "Publishing company")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
141 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
142 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
143 ("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
144 ("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
145 ("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
146 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
147 ("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
148 ("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
149 ("pages" "Pages in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
150 ("type" "Word to use instead of \"chapter\"")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
151 ("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
152 ((("author" "Author1 [and Author2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
153 ("title" "Title of the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
154 ("chapter" "Chapter in the book"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
155 (("publisher" "Publishing company")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
156 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
157 ("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
158 ("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
159 ("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
160 ("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
161 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
162 ("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
163 ("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
164 ("pages" "Pages in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
165 ("type" "Word to use instead of \"chapter\"")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
166 ("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
167 ("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
168 ("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
169 ("booktitle" "Name of the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
170 ("publisher" "Publishing company")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
171 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
172 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
173 ("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
174 ("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
175 ("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
176 ("chapter" "Chapter in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
177 ("type" "Word to use instead of \"chapter\"")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
178 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
179 ("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
180 ("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
181 ("pages" "Pages in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
182 ("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
183 ((("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
184 ("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
185 ("booktitle" "Name of the book"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
186 (("publisher" "Publishing company")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
187 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
188 ("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
189 ("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
190 ("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
191 ("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
192 ("chapter" "Chapter in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
193 ("type" "Word to use instead of \"chapter\"")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
194 ("address" "Address of the publisher")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
195 ("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
196 ("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
197 ("pages" "Pages in the book")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
198 ("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
199 ("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
200 ("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
201 ("booktitle" "Name of the conference proceedings")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
202 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
203 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
204 ("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
205 ("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
206 ("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
207 ("organization" "Sponsoring organization of the conference")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
208 ("publisher" "Publishing company, its location")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
209 ("address" "Location of the Proceedings")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
210 ("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
211 ("pages" "Pages in the conference proceedings")
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")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
213 ((("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
214 ("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
215 ("booktitle" "Name of the conference proceedings"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
216 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
217 ("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
218 ("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
219 ("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
220 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
221 ("organization" "Sponsoring organization of the conference")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
222 ("publisher" "Publishing company, its location")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
223 ("address" "Location of the Proceedings")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
224 ("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
225 ("pages" "Pages in the conference proceedings")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
226 ("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
227 ("Manual" . (((("title" "Title of the manual"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
228 (("author" "Author1 [and Author2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
229 ("organization" "Publishing organization of the manual")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
230 ("address" "Address of the organization")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
231 ("edition" "Edition of the manual as a capitalized English word")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
232 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
233 ("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
234 ("note" "Remarks to be put at the end of the \\bibitem")))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
235
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
236 ("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
237 ("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
238 ("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
239 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
240 (("address" "Address of the school (if not part of field \"school\") or country")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
241 ("type" "Type of the master\'s thesis")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
242 ("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
243 ("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
244 ("Misc" . ((()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
245 (("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
246 ("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
247 ("howpublished" "The way in which the reference was published")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
248 ("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
249 ("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
250 ("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
251 ("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
252 ("title" "Title of the PhD. thesis")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
253 ("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
254 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
255 (("address" "Address of the school (if not part of field \"school\") or country")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
256 ("type" "Type of the PhD. thesis")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
257 ("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
258 ("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
259 ("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
260 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
261 (("editor" "Editor1 [and Editor2 ...] [and others]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
262 ("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
263 ("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
264 ("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
265 ("publisher" "Publishing company, its location")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
266 ("organization" "Sponsoring organization of the conference")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
267 ("address" "Location of the Proceedings")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
268 ("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
269 ("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
270 ("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
271 ("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
272 ("institution" "Sponsoring institution of the report")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
273 ("year" "Year of publication"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
274 (("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
275 ("number" "Number of the technical report")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
276 ("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
277 ("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
278 ("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
279 ("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
280 ("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
281 ("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
282 (("year" "Year of publication")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
283 ("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
284 )
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
285
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
286 "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
287 List of
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
288 (entry-name (required optional) (crossref-required crossref-optional))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
289 triples.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
290 If the third element is nil, the first pair is always to be used.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
291 If not, the second pair is to be used in the case of presence of a
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
292 crossref field and the third in the case of absence.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
293 Required , optional, crossref-required and crossref-optional are lists.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
294 Each element of these lists is a list of strings with two elements
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
295 (first element = name of the field,
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
296 second element = comment to appear in the echo area).")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
297
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
298 (defvar bibtex-predefined-strings
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
299 '(
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
300 ("jan") ("feb") ("mar") ("apr") ("may") ("jun") ("jul") ("aug")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
301 ("sep") ("oct") ("nov") ("dec")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
302 ("acmcs") ("acta") ("cacm") ("ibmjrd") ("ibmsj") ("ieeese")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
303 ("ieeetc") ("ieeetcad") ("ipl") ("jacm") ("jcss") ("scp")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
304 ("sicomp") ("tcs") ("tocs") ("tods") ("tog") ("toms") ("toois")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
305 ("toplas")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
306 )
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
307 "Alist of string definitions.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
308 Should contain the strings defined in the BibTeX style files. Each
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
309 element is a list with just one element: the string.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
310
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
311 (defvar bibtex-string-files nil
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
312 "*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
313 Those files must be specified using pathnames relative to the
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
314 directories specified in $BIBINPUTS. This variable is only evaluated
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
315 when bibtex-mode is entered (i. e. when loading the BibTeX file).")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
316
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
317 (defvar bibtex-help-message t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
318 "*If not nil print help messages in the echo area on entering a new field.")
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
319
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
320 (defvar bibtex-autokey-names 1
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
321 "*Number of names 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
322 If this is set to anything but a number, all names are used.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
323 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
324
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
325 (defvar bibtex-autokey-name-change-strings
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
326 '(("\\\\\\\"a" "ae") ("\\\\\\\"o" "oe") ("\\\\\\\"u" "ue")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
327 ("\\\\\\\"s" "ss")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
328 ("\\\\\\\"A" "Ae") ("\\\\\\\"O" "Oe") ("\\\\\\\"U" "Ue")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
329 ("{" "") ("}" ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
330 "Alist of (old-regexp new-string) pairs.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
331 Any part of name matching a old-regexp is replaced by new-string.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
332 Case of the old-regexp is significant. All regexps are tried in the
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
333 order in which they appear in the list, so be sure to avoid recursion here.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
334 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
335
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
336 (defvar bibtex-autokey-name-length 'infty
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
337 "*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
338 If this is set to anything but a number, all characters are used.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
339 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
340
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
341 (defvar bibtex-autokey-name-separator ""
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
342 "*String that comes between any two names in the key.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
343 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
344
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
345 (defvar bibtex-autokey-year-length 2
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
346 "*Number of rightmost digits from the year field yo incorporate into key.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
347 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
348
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
349 (defvar bibtex-autokey-titlewords 5
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
350 "*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
351 If this is set to anything but a number, all title words are used.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
352 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
353
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
354 (defvar bibtex-autokey-title-terminators
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
355 '("\\." "!" "\\?" ":" ";" "---")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
356 "*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
357 Case of the regexps is ignored.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
358 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
359
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
360 (defvar bibtex-autokey-titlewords-stretch 2
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
361 "*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
362 These words are used only, if a sentence from the title can be ended then.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
363 See the documentation of function bibtex-generate-autokey for further detail.")
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
364
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
365 (defvar bibtex-autokey-titleword-first-ignore
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
366 '("a" "an" "on" "the" "eine?" "der" "die" "das")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
367 "*Determines words that may begin a title but are not to be used in the key.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
368 Each item of the list is a regexp. If the first word of the title matchs a
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
369 regexp from that list, it is not included in the title, even if it is
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
370 capitalized. Regexps in the list must be entered using lowercase letters.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
371
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
372 (defvar bibtex-autokey-titleword-abbrevs nil
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
373 "*Determines exceptions to the usual abbreviation mechanism.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
374 A list of (old-regexp new-string) pairs.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
375 Use all lowercase letters for old-regexp.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
376 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
377
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
378 (defvar bibtex-autokey-titleword-change-strings
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
379 '(("\\\\\\\"a" "ae") ("\\\\\\\"o" "oe") ("\\\\\\\"u" "ue")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
380 ("\\\\\\\"s" "ss")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
381 ("\\\\\\\"A" "Ae") ("\\\\\\\"O" "Oe") ("\\\\\\\"U" "Ue")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
382 ("{" "") ("}" ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
383 "Alist of (old-regexp new-string) pairs.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
384 Any part of title word matching a old-regexp is replaced by new-string.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
385 Case of the old-regexp is significant.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
386 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
387
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
388 (defvar bibtex-autokey-titleword-length 5
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
389 "*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
390 If this is set to anything but a number, all characters are used.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
391 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
392
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
393 (defvar bibtex-autokey-titleword-separator "_"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
394 "*String to be put between the title words.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
395 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
396
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
397 (defvar bibtex-autokey-name-year-separator ""
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
398 "*String to be put between name part and year part of key.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
399 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
400
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
401 (defvar bibtex-autokey-year-title-separator ":_"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
402 "*String to be put between name part and year part of key.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
403 See the documentation of function bibtex-generate-autokey for further detail.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
404
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
405 (defvar bibtex-autokey-edit-before-use t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
406 "*If non-nil, user is allowed to edit the generated key before it is used.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
407
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
408 ;; 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
409 ;; patterns used to define this variable are defined in a later
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
410 ;; section of this file, its definition comes later.
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
411
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
412
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
413 ;; 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
414 (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
415 (let ((st (make-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
416 ;; [alarson:19920214.1004CST] make double quote a string quote
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
417 (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
418 (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
419 (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
420 (modify-syntax-entry ?' "w " 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
421 (modify-syntax-entry ?@ "w " 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
422 (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
423 (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
424 (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
425 (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
426 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
427
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
428 (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
429 (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
430
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
431 (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
432 (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
433 (define-key km "\M-\t" 'bibtex-complete-string)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
434 (define-key km "\C-c\"" 'bibtex-remove-double-quotes-or-braces)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
435 (define-key km "\C-c{" 'bibtex-remove-double-quotes-or-braces)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
436 (define-key km "\C-c}" 'bibtex-remove-double-quotes-or-braces)
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
437 (define-key km "\C-c\C-c" 'bibtex-clean-entry)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
438 (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
439 (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
440 (define-key km "\C-c\C-n" 'bibtex-pop-next)
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
441 (define-key km "\C-c\C-k" 'bibtex-kill-optional-field)
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
442 (define-key km "\C-c\C-d" 'bibtex-empty-field)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
443 (define-key km "\C-c$" 'bibtex-ispell-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
444 (define-key km "\M-\C-a" 'bibtex-beginning-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
445 (define-key km "\M-\C-e" 'bibtex-end-of-entry)
4611
5495e1a7a79c (bibtex-mode-map): Change C-c e to C-c C-b.
Richard M. Stallman <rms@gnu.org>
parents: 3618
diff changeset
446 (define-key km "\C-c\C-b" 'bibtex-entry)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
447 (define-key km "\C-c\C-q" 'bibtex-hide-entry-bodies)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
448 (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
449 (define-key km "\C-c\C-rw" 'widen)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
450 (define-key km "\C-c\C-o" 'bibtex-remove-OPT)
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
451
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
452 (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
453 (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
454 (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
455 (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
456 (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
457 (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
458 (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
459 (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
460 (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
461 (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
462 (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
463 (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
464 (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
465 (define-key km "\C-c\C-eP" 'bibtex-PhdThesis)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
466 (define-key km "\C-c\C-e\M-p" 'bibtex-preamble)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
467 (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
468 (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
469 (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
470 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
471
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
472 (define-key bibtex-mode-map [menu-bar bibtex-edit]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
473 (cons "BibTeX-Edit" (make-sparse-keymap "BibTeX-Edit")))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
474 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-print-help-message]
12028
f667b7adde92 (bibtex-mode-map): Fix capitalization in menu bar.
Karl Heuer <kwzh@gnu.org>
parents: 11373
diff changeset
475 '("Help about Current Field" . bibtex-print-help-message))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
476 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-complete-string]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
477 '("String Complete" . bibtex-complete-string))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
478 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-next-field]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
479 '("Next Field" . bibtex-next-field))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
480 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-find-text]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
481 '("End of Field" . bibtex-find-text))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
482 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-pop-previous]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
483 '("Snatch from Similar Preceding Field" . bibtex-pop-previous))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
484 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-pop-next]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
485 '("Snatch from Similar Following Field" . bibtex-pop-next))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
486 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-remove-OPT]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
487 '("Remove OPT" . bibtex-remove-OPT))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
488 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-remove-double-quotes-or-braces]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
489 '("Remove Quotes or Braces" . bibtex-remove-double-quotes-or-braces))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
490 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-clean-entry]
12028
f667b7adde92 (bibtex-mode-map): Fix capitalization in menu bar.
Karl Heuer <kwzh@gnu.org>
parents: 11373
diff changeset
491 '("Clean Up Entry" . bibtex-clean-entry))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
492 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-sort-entries]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
493 '("Sort Entries" . bibtex-sort-entries))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
494 (define-key bibtex-mode-map
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
495 [menu-bar bibtex-edit bibtex-validate-buffer-from-point]
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
496 '("Validate Entries Starting at Point" .
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
497 (lambda ()
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
498 (interactive)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
499 (bibtex-validate-buffer t))))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
500 (define-key bibtex-mode-map [menu-bar bibtex-edit bibtex-validate-buffer]
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
501 '("Validate Entries" . bibtex-validate-buffer))
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
502
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
503 (define-key bibtex-mode-map [menu-bar entry-types]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
504 (cons "Entry-Types" (make-sparse-keymap "Entry-Types")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
505 (define-key bibtex-mode-map [menu-bar entry-types bibtex-preamble]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
506 '("Preamble" . bibtex-preamble))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
507 (define-key bibtex-mode-map [menu-bar entry-types bibtex-string]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
508 '("String" . bibtex-string))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
509 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Misc]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
510 '("Miscellaneous" . bibtex-Misc))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
511 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Unpublished]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
512 '("Unpublished" . bibtex-Unpublished))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
513 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Manual]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
514 '("Technical Manual" . bibtex-Manual))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
515 (define-key bibtex-mode-map [menu-bar entry-types bibtex-TechReport]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
516 '("Technical Report" . bibtex-TechReport))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
517 (define-key bibtex-mode-map [menu-bar entry-types bibtex-MastersThesis]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
518 '("Master's Thesis" . bibtex-MastersThesis))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
519 (define-key bibtex-mode-map [menu-bar entry-types bibtex-PhdThesis]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
520 '("PhD. Thesis" . bibtex-PhdThesis))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
521 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Booklet]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
522 '("Booklet (Bound, but no Publisher/Institution)" . bibtex-Booklet))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
523 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Book]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
524 '("Book" . bibtex-Book))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
525 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Proceedings]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
526 '("Conference Proceedings" . bibtex-Proceedings))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
527 (define-key bibtex-mode-map [menu-bar entry-types bibtex-InBook]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
528 '("Chapter or Pages in a Book" . bibtex-InBook))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
529 (define-key bibtex-mode-map [menu-bar entry-types bibtex-InCollection]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
530 '("Article in a Collection" . bibtex-InCollection))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
531 (define-key bibtex-mode-map [menu-bar entry-types bibtex-InProceedings]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
532 '("Article in Conference Proceedings" . bibtex-InProceedings))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
533 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Article]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
534 '("Article in Journal" . bibtex-Article))
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
535
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
536
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
537 ;; Bug Reporting
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
538
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
539 (defconst
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
540 bibtex-maintainer-address "Stefan Schoef <schoef@offis.uni-oldenburg.de>")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
541 ;; 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
542
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
543
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
544 ;; 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
545
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
546 (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
547 ;; 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
548 ;; 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
549
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
550 (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
551 ;; 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
552
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
553 (defvar bibtex-completion-candidates nil)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
554 ;; 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
555 ;; 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
556 ;; buffer-local.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
557 (make-variable-buffer-local 'bibtex-completion-candidates)
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
558
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
559 (defvar bibtex-keys nil)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
560 ;; Candidates for TAB completion when entering a reference key using
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
561 ;; the minibuffer. Initialized in bibtex-mode and updated for each
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
562 ;; new entry. This variable is buffer-local.
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
563 (make-variable-buffer-local 'bibtex-keys)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
564
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
565 (defvar bibtex-buffer-last-parsed-for-keys-tick nil)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
566 ;; 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
567 ;; was parsed for keys the last time.
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
568 (make-variable-buffer-local 'bibtex-keys)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
569
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
570
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
571 ;; Functions to Parse the BibTeX Entries
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
572
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
573 (defun bibtex-cfield (name text)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
574 ;; 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
575 (concat ",[ \t\n]*\\("
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
576 name
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
577 "\\)[ \t\n]*=[ \t\n]*\\("
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
578 text
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
579 "\\)"))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
580 (defconst bibtex-name-in-cfield 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
581 ;; The regexp subexpression number of the name part in bibtex-cfield.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
582
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
583 (defconst bibtex-text-in-cfield 2)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
584 ;; 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
585
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
586 (defconst bibtex-field-name "[^\"#%'(),={} \t\n0-9][^\"#%'(),={} \t\n]*")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
587 ;; Regexp defining the name part of a BibTeX field.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
588
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
589 (defconst bibtex-field-const "[][A-Za-z0-9.:;?!`'()/*@_+=|<>-]+")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
590 ;; Format of a bibtex field constant (same as bibtex-reference-key (see below))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
591
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
592 (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
593 "[^{}]")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
594 ;; 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
595
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
596 (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
597 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
598 "{"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
599 "\\(" 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
600 "}"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
601 ;; 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
602
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
603 (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
604 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
605 "{"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
606 "\\("
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
607 "\\(" 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
608 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
609 "\\(" 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
610 "\\)*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
611 "}"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
612 ;; 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
613
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
614 (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
615 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
616 "{"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
617 "\\("
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
618 "\\(" 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
619 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
620 "\\(" 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
621 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
622 "\\(" 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
623 "\\)*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
624 "}"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
625 ;; 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
626
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
627 (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
628 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
629 "{"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
630 "\\("
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
631 "\\(" 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
632 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
633 "\\(" 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
634 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
635 "\\(" 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
636 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
637 "\\(" 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
638 "\\)*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
639 "}"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
640 ;; 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
641
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
642 (defconst bibtex-field-string-braced
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
643 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
644 ;; 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
645
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
646 (defconst bibtex-field-string-quoted
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
647 (concat
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
648 "\""
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
649 "\\("
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
650 "\\(" "[^\"\\]" "\\)" ;; every character except quote or backslash
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
651 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
652 "\\(" "\"[A-Za-z-]" "\\)" ;; a quote followed by a letter or dash
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
653 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
654 "\\(" "\\\\.\\|\n" "\\)" ;; a backslash followed by any character
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
655 "\\)*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
656 "\""))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
657 ;; Match quoted field string
561
a819dc25b9e7 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 257
diff changeset
658
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
659 (defconst bibtex-field-string
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
660 (concat
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
661 "\\(" bibtex-field-string-braced "\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
662 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
663 "\\(" bibtex-field-string-quoted "\\)"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
664 ;; Match a braced or quoted string
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
665
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
666 (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
667 (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
668 ;; Match either bibtex-field-string or bibtex-field-const.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
669
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
670 (defconst bibtex-field-text
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
671 (concat
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
672 "\\(" 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
673 "\\([ \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
674 ;; 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
675 ;; 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
676 ;; constant pairs.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
677
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
678 (defconst bibtex-field
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
679 (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
680 ;; 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
681
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
682 (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
683 ;; The regexp subexpression number of the name part in BibTeX-field.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
684
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
685 (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
686 ;; The regexp subexpression number of the text part in BibTeX-field.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
687
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
688 (defconst bibtex-reference-type "@[A-Za-z]+")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
689 ;; Regexp defining the type part of a BibTeX reference entry.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
690
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
691 (defconst bibtex-reference-key "[][A-Za-z0-9.:;?!`'()/*@_+=|<>-]+")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
692 ;; Regexp defining the label part of a BibTeX reference entry (same as
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
693 ;; bibtex-field-const (see above))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
694
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
695 (defconst bibtex-reference-head
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
696 (concat "^\\( \\|\t\\)*\\("
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
697 bibtex-reference-type
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
698 "\\)[ \t]*[({]\\("
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
699 bibtex-reference-key
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
700 "\\)"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
701 ;; 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
702 ;; entry.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
703
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
704 (defconst bibtex-reference-maybe-empty-head
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
705 (concat bibtex-reference-head "?"))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
706 ;; 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
707 ;; BibTeX reference entry (without reference key).
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
708
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
709 (defconst bibtex-type-in-head 2)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
710 ;; 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
711 ;; bibtex-reference-head.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
712
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
713 (defconst bibtex-key-in-head 3)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
714 ;; 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
715 ;; bibtex-reference-head.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
716
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
717 (defconst bibtex-reference
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
718 (concat bibtex-reference-head
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
719 "\\([ \t\n]*" bibtex-field "\\)*"
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
720 "[ \t\n]*,?[ \t\n]*[})]"))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
721 ;; Regexp defining the format of a BibTeX reference entry.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
722
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
723 (defconst bibtex-type-in-reference bibtex-type-in-head)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
724 ;; 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
725 ;; bibtex-reference.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
726
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
727 (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
728 ;; 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
729 ;; bibtex-reference.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
730
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
731 (defconst bibtex-string
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
732 (concat "^[ \t]*@[sS][tT][rR][iI][nN][gG][ \t\n]*[({][ \t\n]*\\("
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
733 bibtex-reference-key
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
734 "\\)[ \t\n]*=[ \t\n]*\\("
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
735 bibtex-field-text
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
736 "\\)[ \t\n]*[})]"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
737 ;; Regexp defining the format of a BibTeX string entry.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
738
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
739 (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
740 ;; 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
741
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
742 (defconst bibtex-text-in-string 2)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
743 ;; 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
744
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
745 (defvar bibtex-font-lock-keywords
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
746 (list
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
747 (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
748 (list bibtex-type-in-head 'font-lock-function-name-face)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
749 (list bibtex-key-in-head 'font-lock-reference-face nil t))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
750 ;; reference type and reference label
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
751 (list (concat "^[ \t]*\\(OPT" bibtex-field-name "\\)[ \t]*=")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
752 1 'font-lock-comment-face)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
753 ;; optional field names (treated as comments)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
754 (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
755 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
756 ;; field names
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
757 "*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
758 ;; 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
759
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
760 (defconst bibtex-name-alignment 2)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
761 ;; Alignment for the name part in BibTeX fields. Chosen on aesthetic
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
762 ;; grounds only.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
763
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
764 (defconst bibtex-text-alignment (length " organization = "))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
765 ;; Alignment for the text part in BibTeX fields. Equal to the space
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
766 ;; needed for the longest name part.
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
767
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
768
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
769 ;; 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
770
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
771 (defun assoc-ignore-case (string alist)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
772 ;; Return non-nil if STRING is `equal' to the car of an element of
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
773 ;; LIST. Comparison is done with case ignored. The value is actually
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
774 ;; the element of LIST whose car is `equal' to STRING.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
775 (or (assoc string alist)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
776 (while (and alist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
777 (not (string-equal
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
778 (downcase string)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
779 (downcase (car (car alist))))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
780 (setq alist (cdr alist)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
781 (car alist)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
782
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
783 (defun member-of-regexp (string list)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
784 ;; Return non-nil if STRING is exactly matched by an element of
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
785 ;; LIST. This function is influenced by the actual value of
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
786 ;; `case-fold-search'. The value is actually the tail of LIST whose
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
787 ;; car matches STRING.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
788 (while
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
789 (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
790 list
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
791 (not
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
792 (string-match
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
793 (concat "^" (car list) "$")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
794 string)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
795 (setq list (cdr list)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
796 list)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
797
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
798 (defun assoc-of-regexp (string alist)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
799 ;; Return non-nil if STRING is exactly matched by the car of an
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
800 ;; element of LIST. This function is influenced by the actual value
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
801 ;; of `case-fold-search'. The value is actually the element of LIST
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
802 ;; whose car matches STRING.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
803 (while
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
804 (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
805 alist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
806 (not
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
807 (string-match
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
808 (concat "^" (car (car alist)) "$")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
809 string)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
810 (setq alist (cdr alist)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
811 (car alist))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
812
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
813 (defun skip-whitespace-and-comments ()
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
814 (let ((md (match-data)))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
815 (unwind-protect
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
816 (while (cond ((looking-at "\\s>+\\|\\s +")
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
817 ;; was whitespace
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
818 ;; NOTE: also checked end-comment. In latex and
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
819 ;; lisp modes, newline is an end comment, but it
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
820 ;; should also be a whitespace char.
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
821 (goto-char (match-end 0)))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
822 ;; If looking at beginning of comment, skip to end.
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
823 ((looking-at "\\s<")
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
824 (re-search-forward "\\s>"))))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
825 (store-match-data md))))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
826
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
827 (defun map-bibtex-entries (fun)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
828 ;; 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
829 ;; 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
830 ;; of the entry, and with point inside the entry. If
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
831 ;; bibtex-sort-ignore-string-entries is non-nil, FUN will not be called
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
832 ;; for @string entries.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
833 (bibtex-beginning-of-entry)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
834 (while (re-search-forward bibtex-reference-head nil t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
835 (if (and bibtex-sort-ignore-string-entries
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
836 (string-equal "@string"
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
837 (downcase (buffer-substring-no-properties
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
838 (match-beginning bibtex-type-in-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
839 (match-end bibtex-type-in-head)))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
840 nil
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
841 (funcall fun (buffer-substring-no-properties
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
842 (match-beginning bibtex-key-in-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
843 (match-end bibtex-key-in-head))))))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
844
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
845 (defun bibtex-flash-head ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
846 ;; Flash at BibTeX reference head before point, if exists.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
847 (let ((flash))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
848 (cond ((re-search-backward bibtex-reference-head (point-min) t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
849 (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
850 (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
851 (t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
852 (end-of-line)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
853 (skip-chars-backward " \t")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
854 (setq flash (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
855 (beginning-of-line)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
856 (skip-chars-forward " \t")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
857 (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
858 (sit-for 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
859 (message "From: %s"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
860 (buffer-substring (point) flash)))))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
861
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
862 (defun bibtex-move-outside-of-entry ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
863 ;; Make sure we are outside of a BibTeX entry.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
864 (cond ((or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
865 (= (point) (point-max))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
866 (= (point) (point-min))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
867 (looking-at "[ \n]*@")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
868 )
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
869 t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
870 (t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
871 (backward-paragraph)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
872 (forward-paragraph)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
873 (re-search-forward "[ \t\n]*" (point-max) t))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
874
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
875 (defun beginning-of-first-bibtex-entry ()
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
876 ;; Go to the beginning of the first BibTeX entry in buffer.
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
877 (goto-char (point-min))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
878 (cond
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
879 ((re-search-forward "^@" nil 'move)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
880 (beginning-of-line))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
881 ((and (bobp) (eobp))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
882 nil)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
883 (t
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
884 (message "Warning: No BibTeX entries found!"))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
885
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
886 (defun bibtex-inside-field ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
887 ;; 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
888 (end-of-line)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
889 (skip-chars-backward " \t")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
890 (cond ((= (preceding-char) ?,)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
891 (forward-char -2)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
892 (cond ((or
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
893 (= (preceding-char) ?})
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
894 (= (preceding-char) ?\"))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
895 (forward-char -1))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
896
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
897 (defun bibtex-enclosing-field ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
898 ;; Search for BibTeX field enclosing point. Point moves to end of
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
899 ;; field; also, use match-beginning and match-end to parse the field.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
900 ;; sct@dcs.edinburgh.ac.uk
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
901 (let ((old-point (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
902 (condition-case errname
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
903 (bibtex-enclosing-regexp bibtex-field)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
904 (search-failed
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
905 (goto-char old-point)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
906 (error "Can't find enclosing BibTeX field.")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
907
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
908 (defun bibtex-enclosing-reference ()
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
909 ;; Search for BibTeX reference enclosing point. Point moves to
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
910 ;; beginning of reference. Beginning/end of reference is given by
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
911 ;; (match-beginning/match-end 0).
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
912 (let ((old-point (point)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
913 (if (not
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
914 (re-search-backward bibtex-reference-head (point-min) t))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
915 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
916 (error "Can't find enclosing BibTeX reference.")
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
917 (goto-char old-point)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
918 (goto-char (match-beginning bibtex-type-in-head))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
919 (let ((pnt (point)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
920 (if (not
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
921 (re-search-forward bibtex-reference (point-max) t))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
922 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
923 (error "Can't find enclosing BibTeX reference.")
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
924 (goto-char old-point))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
925 (goto-char pnt)))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
926
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
927 (defun bibtex-enclosing-reference-maybe-empty-head ()
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
928 ;; Search for BibTeX reference enclosing point. Point moves to
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
929 ;; beginning of reference. Beginning/end of reference is given by
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
930 ;; (match-beginning/match-end 0).
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
931 (let ((old-point (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
932 (if (not
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
933 (re-search-backward
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
934 bibtex-reference-maybe-empty-head (point-min) t))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
935 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
936 (error "Can't find enclosing BibTeX reference.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
937 (goto-char old-point)))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
938 (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
939 (let ((pnt (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
940 (if (not
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
941 (re-search-forward
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
942 (concat
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
943 bibtex-reference-maybe-empty-head
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
944 "\\([ \t\n]*" bibtex-field "\\)*"
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
945 "[ \t\n]*,?[ \t\n]*[})]")
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
946 (point-max) t))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
947 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
948 (error "Can't find enclosing BibTeX reference.")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
949 (goto-char old-point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
950 (goto-char pnt)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
951
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
952 (defun bibtex-enclosing-regexp (regexp)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
953 ;; Search for REGEXP enclosing point. Point moves to end of
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
954 ;; REGEXP. See also match-beginning and match-end. If an enclosing
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
955 ;; REGEXP is not found, signals search-failed; point is left in an
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
956 ;; undefined location.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
957 ;; Doesn't something like this exist already?
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
958 ;; compute reasonable limits for the loop
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
959 (let* ((initial (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
960 (right (if (re-search-forward regexp (point-max) t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
961 (match-end 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
962 (point-max)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
963 (left
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
964 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
965 (goto-char initial)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
966 (if (re-search-backward regexp (point-min) t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
967 (match-beginning 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
968 (point-min)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
969 ; within the prescribed limits, loop until a match is found
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
970 (goto-char left)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
971 (re-search-forward regexp right nil 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
972 (if (> (match-beginning 0) initial)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
973 (signal 'search-failed (list regexp)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
974 (while (<= (match-end 0) initial)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
975 (re-search-forward regexp right nil 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
976 (if (> (match-beginning 0) initial)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
977 (signal 'search-failed (list regexp))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
978 ))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
979
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
980 (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
981 ;; 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
982 ;; 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
983 ;; new-string) pair.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
984 (let ((return-string string)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
985 case-fold-search
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
986 (index 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
987 (len (length change-list))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
988 change-item)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
989 (while (< index len)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
990 (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
991 (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
992 (setq
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
993 return-string
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
994 (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
995 (elt change-item 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
996 (substring return-string (match-end 0)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
997 (setq index (1+ index)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
998 return-string))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
999
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1000 (defun bibtex-autokey-abbrev (string len)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1001 ;; Returns an abbreviation of string with at least len
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1002 ;; characters. String is aborted only after a consonant or at the
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1003 ;; word end. If len is not a number, string is returned unchanged.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1004 (let* ((string-length (length string))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1005 (len (if (numberp len)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1006 (min len string-length)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1007 len))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1008 (return-string (if (numberp len)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1009 (substring string 0 len)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1010 (index len)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1011 (vowels '(?a ?e ?i ?o ?u ?A ?E ?I ?O ?U)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1012 (if (numberp len)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1013 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1014 (while (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1015 (< index string-length)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1016 (member (elt return-string
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1017 (1- (length return-string)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1018 vowels))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1019 (setq return-string (concat return-string
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1020 (substring
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1021 string index (1+ index)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1022 index (1+ index)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1023 return-string)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1024 string)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1025
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1026 (defun bibtex-generate-autokey ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1027 "Generates automatically a key from the author/editor and the title field.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1028 The generation algorithm works as follows:
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1029 1. If there is a non-empty author (preferred) or editor field,
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1030 use it for the name part of the key.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1031 2. Change any substring found in `bibtex-autokey-name-change-strings'
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1032 to the corresponding new one (see documentation of this variable
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1033 for further detail).
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1034 3. For every of the first `bibtex-autokey-names' names in the
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1035 \"name\" field, determine the last name.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1036 4. From every last name, take at least `bibtex-autokey-name-length'
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1037 characters (abort only after a consonant or at a word end).
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1038 5. Build the name part of the key by concatenating all abbreviated last
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1039 names with the string `bibtex-autokey-name-separator' between
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1040 any two.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1041 6. Build the year part of the key by truncating the contents of the
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1042 \"year\" field to the rightmost `bibtex-autokey-year-length'
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1043 digits (useful values are 2 and 4).
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1044 7. For the title part of the key change the contents of the \"title\"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1045 field of the reference according to
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1046 `bibtex-autokey-titleword-change-strings' to the corresponding
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1047 new one (see documentation of this variable for further detail).
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1048 8. Abbreviate the result to the string up to (but not including) the
13968
cc71d8efd948 (bibtex-generate-autokey, bibtex-find-entry-location):
Karl Heuer <kwzh@gnu.org>
parents: 13728
diff changeset
1049 first occurrence of a regexp matched by the items of
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1050 `bibtex-autokey-title-terminators' and delete the first
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1051 word if it appears in `bibtex-autokey-titleword-first-ignore'.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1052 Build the title part of the key by using at least the first
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1053 `bibtex-autokey-titlewords' capitalized words from this
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1054 abbreviated title. If the abbreviated title ends after maximal
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1055 `bibtex-autokey-titlewords' + `bibtex-autokey-titlewords-stretch'
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1056 capitalized words, all capitalized words from the abbreviated title
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1057 are used.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1058 9. For every used title word that appears in
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1059 `bibtex-autokey-titleword-abbrevs' use the corresponding abbreviation
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1060 (see documentation of this variable for further detail).
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1061 10. From every title word not generated by an abbreviation, take at
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1062 least `bibtex-autokey-titleword-length' characters (abort only after
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1063 a consonant or at a word end).
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1064 11. Build the title part of the key by concatenating all abbreviated
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1065 title words with the string `bibtex-autokey-titleword-separator'
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1066 between any two.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1067 12. At least, to get the key, concatenate the name part, the year part
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1068 and the title part with `bibtex-autokey-name-year-separator'
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1069 between the name and the year if both are non-empty and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1070 `bibtex-autokey-year-title-separator' between the year and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1071 the title if both are non-empty."
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1072
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1073 (let* ((pnt (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1074 (min
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1075 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1076 (bibtex-beginning-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1077 (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1078 (max
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1079 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1080 (bibtex-end-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1081 (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1082 (namefield
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1083 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1084 (goto-char min)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1085 (if (or
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1086 (re-search-forward "^[ \t]*author[ \t]*=" max t)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1087 (re-search-forward "^[ \t]*editor[ \t]*=" max t))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1088 (let* (bibtex-help-message
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1089 (start (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1090 (bibtex-find-text t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1091 (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1092 (end (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1093 (bibtex-find-text nil)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1094 (point))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1095 (bibtex-autokey-change
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1096 (buffer-substring-no-properties start end)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1097 bibtex-autokey-name-change-strings))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1098 "")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1099 (namelist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1100 (mapcar
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1101 (function
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1102 (lambda (fullname)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1103 (bibtex-autokey-abbrev
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1104 (if (string-match "," fullname)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1105 (substring fullname 0 (match-beginning 0))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1106 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1107 (if (string-match " [^ ]*$" fullname)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1108 (substring
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1109 fullname (1+ (match-beginning 0)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1110 fullname)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1111 bibtex-autokey-name-length)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1112 ;; Gather all names into a list
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1113 (let (names
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1114 (counter 0))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1115 (while (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1116 (not (equal namefield ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1117 (or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1118 (not (numberp bibtex-autokey-names))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1119 (< counter bibtex-autokey-names)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1120 (if (string-match " and " namefield)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1121 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1122 (setq
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1123 names
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1124 (append names
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1125 (list
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1126 (downcase
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1127 (substring
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1128 namefield 0 (match-beginning 0)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1129 namefield
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1130 (substring namefield (match-end 0))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1131 (setq names
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1132 (append names (list (downcase namefield)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1133 namefield ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1134 (setq counter (1+ counter)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1135 names)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1136 (namepart (mapconcat (function (lambda (name) name))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1137 namelist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1138 bibtex-autokey-name-separator))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1139 (yearfield
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1140 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1141 (goto-char min)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1142 (if (re-search-forward
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1143 "^[ \t]*year[ \t]*=[ \t]*\\([0-9]*\\)" max t)
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1144 (buffer-substring-no-properties
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1145 (match-beginning 1) (match-end 1))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1146 "")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1147 (yearpart
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1148 (if (equal yearfield "")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1149 ""
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1150 (substring yearfield
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1151 (- (length yearfield)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1152 bibtex-autokey-year-length))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1153 (titlestring
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1154 (let ((case-fold-search t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1155 (titlefield
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1156 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1157 (goto-char min)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1158 (if (re-search-forward
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1159 "^[ \t]*title[ \t]*=" max t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1160 (let* (bibtex-help-message
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1161 (start (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1162 (bibtex-find-text t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1163 (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1164 (end (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1165 (bibtex-find-text nil)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1166 (point))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1167 (bibtex-autokey-change
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1168 (buffer-substring-no-properties start end)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1169 bibtex-autokey-titleword-change-strings))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1170 "")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1171 case-fold-search
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1172 (index 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1173 (numberofitems
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1174 (length bibtex-autokey-title-terminators)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1175 (while (< index numberofitems)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1176 (if (string-match
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1177 (elt bibtex-autokey-title-terminators index)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1178 titlefield)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1179 (setq titlefield
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1180 (substring titlefield 0 (match-beginning 0))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1181 (setq index (1+ index)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1182 titlefield))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1183 (titlelist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1184 (mapcar
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1185 (function
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1186 (lambda (titleword)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1187 (let ((abbrev
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1188 (assoc-of-regexp
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1189 titleword bibtex-autokey-titleword-abbrevs)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1190 (if abbrev
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1191 (elt abbrev 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1192 (bibtex-autokey-abbrev
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1193 titleword
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1194 bibtex-autokey-titleword-length)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1195 ;; Gather all titlewords into a list
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1196 (let (titlewords
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1197 titlewords-extra
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1198 case-fold-search
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1199 (counter 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1200 (first t))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1201 (while (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1202 (not (equal titlestring ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1203 (or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1204 (not (numberp bibtex-autokey-titlewords))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1205 (< counter (+
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1206 bibtex-autokey-titlewords
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1207 bibtex-autokey-titlewords-stretch))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1208 (if (string-match "\\b[A-Z][A-Za-z0-9]*" titlestring)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1209 (let* ((end-match (match-end 0))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1210 (titleword
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1211 (downcase (substring titlestring
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1212 (match-beginning 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1213 end-match))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1214 (if (or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1215 (not (numberp bibtex-autokey-titlewords))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1216 (< counter bibtex-autokey-titlewords))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1217 (if (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1218 first
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1219 (member-of-regexp
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1220 titleword
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1221 bibtex-autokey-titleword-first-ignore))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1222 (setq counter -1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1223 (setq titlewords
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1224 (append titlewords (list titleword))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1225 (setq
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1226 titlewords-extra
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1227 (append titlewords-extra (list titleword))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1228 (setq titlestring
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1229 (substring titlestring end-match)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1230 (setq titlestring ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1231 (setq first nil
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1232 counter (1+ counter)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1233 (if (string-match "\\b[A-Z][^ ]*\\b" titlestring)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1234 titlewords
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1235 (append titlewords titlewords-extra)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1236 (titlepart (mapconcat (function (lambda (name) name))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1237 titlelist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1238 bibtex-autokey-titleword-separator))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1239 (autokey
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1240 (concat
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1241 namepart
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1242 (if (not
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1243 (or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1244 (equal namepart "")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1245 (equal yearpart "")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1246 bibtex-autokey-name-year-separator)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1247 yearpart
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1248 (if (not
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1249 (or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1250 (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1251 (equal namepart "")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1252 (equal yearpart ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1253 (equal titlepart "")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1254 bibtex-autokey-year-title-separator)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1255 titlepart)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1256 (goto-char pnt)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1257 autokey))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1258
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1259 (defun bibtex-parse-keys (add &optional abortable)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1260 ;; 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
1261 ;; 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
1262 ;; If ADD is non-nil adds the new keys to bibtex-keys instead of
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1263 ;; simply resetting it. If ABORTABLE is non-nil abort on user input.
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1264 (if bibtex-maintain-sorted-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1265 (let ((labels (if add
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1266 bibtex-keys))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1267 label
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1268 (case-fold-search t))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1269 (save-excursion
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1270 (goto-char (point-min))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1271 (if (not add)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1272 (message "Parsing reference keys..."))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1273
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1274 (if (not
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1275 (catch 'userkey
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1276 (while
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1277 (re-search-forward
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1278 (concat
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1279 "\\(" bibtex-reference-head "\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1280 "\\|"
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1281 "\\("
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1282 "^[ \t]*crossref[ \t\n]*=[ \t\n]*"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1283 "\\("
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1284 "\\({"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1285 bibtex-reference-key
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1286 ;; every valid crossref entry must have the
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1287 ;; form of a reference key, so we need no
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1288 ;; nesting of brace etc. here
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1289 "}\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1290 "\\|"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1291 "\\(\""
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1292 bibtex-reference-key
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1293 "\"\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1294 "\\)"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1295 ",?$"
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1296 "\\)")
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1297 nil t)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1298 (if (and
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1299 abortable
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1300 (input-pending-p))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1301 (throw 'userkey t))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1302 (if (match-beginning (1+ bibtex-key-in-head))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1303 (setq
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1304 label
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1305 (buffer-substring-no-properties
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1306 (match-beginning (1+ bibtex-key-in-head))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1307 (match-end (1+ bibtex-key-in-head))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1308 (setq
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1309 label
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1310 (buffer-substring-no-properties
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1311 (1+ (match-beginning (+ 3 bibtex-key-in-head)))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1312 (1- (match-end (+ 3 bibtex-key-in-head))))))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1313 (if (not (assoc label labels))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1314 (setq labels
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1315 (cons (list label) labels))))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1316 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1317 (setq
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1318 bibtex-buffer-last-parsed-for-keys-tick
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1319 (buffer-modified-tick))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1320 (if (not add)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1321 (message "Parsing reference keys... done"))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1322 (setq bibtex-keys labels)))))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1323
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1324 (defun bibtex-auto-fill-function ()
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1325 (let ((fill-prefix (make-string (+ bibtex-text-alignment 1) ? )))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1326 (do-auto-fill)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1327
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1328
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1329 ;; Interactive Functions:
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1330
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1331 ;;;###autoload
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1332 (defun bibtex-mode ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1333 "Major mode for editing BibTeX files.
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1334 To submit a problem report, enter `\\[bibtex-submit-bug-report]' from a
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1335 bibtex-mode buffer. This automatically sets up a mail buffer with
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1336 version information already added. You just need to add a description
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1337 of the problem, including a reproducable test case and send the
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1338 message.
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1339
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1340 \\{bibtex-mode-map}
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1341
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1342 A command such as \\[bibtex-Book] will outline the fields for a BibTeX book entry.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1343
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1344 The optional fields start with the string OPT, and thus ignored by BibTeX.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1345 The OPT string may be removed from a field with \\[bibtex-remove-OPT].
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1346 \\[bibtex-kill-optional-field] kills the current optional field entirely.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1347 \\[bibtex-remove-double-quotes-or-braces] removes the double-quotes or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1348 braces around the text of the current field. \\[bibtex-empty-field]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1349 replaces the text of the current field with the default \"\" or {}.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1350
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1351 The command \\[bibtex-clean-entry] cleans the current entry, i.e. (i) removes
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1352 double-quotes or braces from entirely numerical fields, (ii) removes
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1353 OPT from all non-empty optional fields, (iii) removes all empty
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1354 optional fields, and (iv) checks that no non-optional fields are empty.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1355
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1356 Use \\[bibtex-find-text] to position the cursor at the end of the current field.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1357 Use \\[bibtex-next-field] to move to end of the next field.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1358
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1359 The following may be of interest as well:
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1360
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1361 Functions:
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1362 bibtex-entry
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1363 bibtex-print-help-message
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1364 bibtex-beginning-of-entry
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1365 bibtex-end-of-entry
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1366 bibtex-ispell-abstract
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1367 bibtex-narrow-to-entry
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1368 bibtex-hide-entry-bodies
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1369 bibtex-sort-entries
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1370 bibtex-validate-buffer
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1371 bibtex-pop-previous
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1372 bibtex-pop-next
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1373 bibtex-complete-string
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1374
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1375 Variables:
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1376 bibtex-field-left-delimiter
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1377 bibtex-field-right-delimiter
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1378 bibtex-include-OPTcrossref
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1379 bibtex-include-OPTkey
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1380 bibtex-include-OPTannote
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1381 bibtex-mode-user-optional-fields
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1382 bibtex-clean-entry-zap-empty-opts
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1383 bibtex-sort-ignore-string-entries
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1384 bibtex-maintain-sorted-entries
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1385 bibtex-entry-field-alist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1386 bibtex-predefined-strings
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1387 bibtex-string-files
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1388
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1389 ---------------------------------------------------------
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1390 Entry to this mode calls the value of bibtex-mode-hook if that value is
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1391 non-nil."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1392 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1393 (kill-all-local-variables)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1394 (use-local-map bibtex-mode-map)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1395 (setq major-mode 'bibtex-mode)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1396 (setq mode-name "BibTeX")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1397 (set-syntax-table bibtex-mode-syntax-table)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1398 (setq bibtex-completion-candidates bibtex-predefined-strings)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1399 (mapcar
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1400 (function
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1401 (lambda (filename)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1402 ;; collect pathnames
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1403 (let* ((bib (getenv "BIBINPUTS"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1404 (path (if bib
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1405 bib
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1406 "."))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1407 (dirs
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1408 (mapcar
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1409 (function
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1410 (lambda (dirname) ;; strips off trailing slashes
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1411 (let ((len (length dirname)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1412 (if (equal (elt dirname (1- len)) "/")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1413 (substring dirname 0 (1- (1- len)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1414 dirname))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1415 (let (actdirs)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1416 (while (string-match ":" path)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1417 (setq actdirs
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1418 (append actdirs
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1419 (list (substring
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1420 path 0
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1421 (1- (match-end 0)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1422 path (substring path (match-end 0))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1423 (append actdirs (list path)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1424 (filename (if (string-match "\.bib$" filename)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1425 filename
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1426 (concat filename ".bib")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1427 fullfilename
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1428 (item 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1429 (size (length dirs)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1430 ;; test filenames
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1431 (while (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1432 (< item size)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1433 (not (file-readable-p
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1434 (setq fullfilename
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1435 (concat (elt dirs item) "/" filename)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1436 (setq item (1+ item)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1437 (if (< item size)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1438 ;; file was found
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1439 (let ((curbuf (current-buffer))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1440 (bufname (make-temp-name ""))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1441 (compl bibtex-completion-candidates))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1442 (create-file-buffer bufname)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1443 (set-buffer bufname)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1444 (insert-file-contents fullfilename)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1445 (goto-char (point-min))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1446 (while (re-search-forward bibtex-string nil t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1447 (setq
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1448 compl
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1449 (append
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1450 compl
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1451 (list
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1452 (list (buffer-substring-no-properties
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1453 (match-beginning bibtex-key-in-string)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1454 (match-end bibtex-key-in-string)))))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1455 (kill-buffer bufname)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1456 (set-buffer curbuf)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1457 (setq bibtex-completion-candidates compl))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1458 (error "File %s not in $BIBINPUTS paths" filename)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1459 bibtex-string-files)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1460 (add-hook
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1461 'auto-save-hook
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1462 (function
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1463 (lambda ()
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1464 (if (and
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1465 bibtex-maintain-sorted-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1466 (eq major-mode 'bibtex-mode)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1467 (not
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1468 (eq (buffer-modified-tick)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1469 bibtex-buffer-last-parsed-for-keys-tick)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1470 (bibtex-parse-keys nil t)))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1471 (bibtex-parse-keys nil)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1472 (make-local-variable 'paragraph-start)
10869
b8e678e5c4de (bibtex-mode): Remove ^ from paragraph-start.
Boris Goldowsky <boris@gnu.org>
parents: 10353
diff changeset
1473 (setq paragraph-start "[ \f\n\t]*$")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1474 (make-local-variable 'comment-start)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1475 (setq comment-start "%")
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1476 (auto-fill-mode 1)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1477 (setq auto-fill-function 'bibtex-auto-fill-function)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1478 (set (make-local-variable 'font-lock-defaults)
14193
649ead749232 (bibtex-font-lock-keywords, bibtex-mode):
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1479 '(bibtex-font-lock-keywords
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1480 nil t ((?$ . "\"")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1481 ;; Mathematical expressions should be fontified as strings
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1482 (?\" . ".")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1483 ;; Quotes are field delimiters and quote-delimited
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1484 ;; entries should be fontified in the same way as
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1485 ;; brace-delimited ones
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1486 )))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1487 (run-hooks 'bibtex-mode-hook))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1488
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1489 (defun bibtex-submit-bug-report ()
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1490 "Submit via mail a bug report on bibtex.el."
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1491 (interactive)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1492 (if (y-or-n-p "Do you want to submit a bug report on BibTeX mode? ")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1493 (progn
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1494 (require 'reporter)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1495 (let ((reporter-prompt-for-summary-p t))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1496 (reporter-submit-bug-report
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1497 bibtex-maintainer-address
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1498 "bibtex.el"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1499 (list
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1500 'system-configuration
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1501 'system-configuration-options
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1502 'bibtex-sort-ignore-string-entries
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1503 'bibtex-maintain-sorted-entries
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1504 'bibtex-field-left-delimiter
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1505 'bibtex-field-right-delimiter
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1506 ;; Possible sorting and parsing bugs
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1507 'bibtex-mode-user-optional-fields
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1508 ;; Possible format error
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1509 'bibtex-predefined-strings
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1510 'bibtex-string-files
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1511 ;; Possible format error
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1512 'bibtex-font-lock-keywords
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1513 ;; Possible bugs regarding fontlocking
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1514 'bibtex-autokey-names
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1515 'bibtex-autokey-name-change-strings
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1516 'bibtex-autokey-name-length
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1517 'bibtex-autokey-name-separator
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1518 'bibtex-autokey-year-length
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1519 'bibtex-autokey-titlewords
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1520 'bibtex-autokey-title-terminators
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1521 'bibtex-autokey-titlewords-stretch
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1522 'bibtex-autokey-titleword-first-ignore
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1523 'bibtex-autokey-titleword-abbrevs
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1524 'bibtex-autokey-titleword-change-strings
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1525 'bibtex-autokey-titleword-length
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1526 'bibtex-autokey-titleword-separator
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1527 'bibtex-autokey-name-year-separator
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1528 'bibtex-autokey-year-title-separator
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1529 'bibtex-autokey-edit-before-use
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1530 ;; Possible bugs regarding automatic labels
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1531 'bibtex-entry-field-alist
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1532 ;; Possible format error
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1533 'bibtex-help-message
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1534 'bibtex-include-OPTcrossref
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1535 'bibtex-include-OPTkey
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1536 'bibtex-include-OPTannote
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1537 'bibtex-clean-entry-zap-empty-opts
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1538 ;; User variables which shouldn't cause any errors
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1539 )
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1540 nil nil
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1541 (concat "Hi Stefan,
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1542
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1543 I want to report a bug on Emacs BibTeX mode.
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1544 I've read the `Bugs' section in the `Emacs' info page, so I know how
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1545 to make a clear and unambiguous report. I have started a fresh Emacs
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1546 via `"invocation-name " --no-init-file --no-site-file', thereafter (in
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1547 case I'm reporting on a version of `bibtex.el' which is not part of
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1548 the standard emacs distribution) I loaded the questionable version
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1549 of `bibtex.el' with `M-x load-file', and then, to produce the buggy
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1550 behaviour, I did the following:")))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1551 (message nil))))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1552
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1553 (defun bibtex-entry (entry-type &optional required optional)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1554 "Inserts a new BibTeX entry.
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1555 Calls the value of bibtex-add-entry-hook if that value is non-nil."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1556 (interactive (let* ((completion-ignore-case t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1557 (e-t (completing-read
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1558 "Entry Type: "
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1559 bibtex-entry-field-alist
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1560 nil t)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1561 (list e-t)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1562 (if (and (null required) (null optional))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1563 (let* ((e (assoc-ignore-case entry-type bibtex-entry-field-alist))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1564 (r-n-o (elt e 1))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1565 (c-ref (elt e 2)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1566 (if (null e)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1567 (error "Bibtex entry type %s not defined!" entry-type))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1568 (if (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1569 (member entry-type bibtex-include-OPTcrossref)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1570 c-ref)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1571 (setq required (elt c-ref 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1572 optional (elt c-ref 1))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1573 (setq required (elt r-n-o 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1574 optional (elt r-n-o 1)))))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1575 (let ((key
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1576 (if bibtex-maintain-sorted-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1577 (completing-read
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1578 (format "%s key: " entry-type)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1579 bibtex-keys))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1580 (if bibtex-maintain-sorted-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1581 (bibtex-find-entry-location key)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1582 (bibtex-move-outside-of-entry))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1583 (insert "@" entry-type "{")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1584 (if key
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1585 (insert key))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1586 (save-excursion
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1587 (mapcar 'bibtex-make-field required)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1588 (if (member entry-type bibtex-include-OPTcrossref)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1589 (bibtex-make-optional-field '("crossref")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1590 (if bibtex-include-OPTkey
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1591 (bibtex-make-optional-field '("key")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1592 (mapcar 'bibtex-make-optional-field optional)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1593 (mapcar 'bibtex-make-optional-field
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1594 bibtex-mode-user-optional-fields)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1595 (if bibtex-include-OPTannote
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1596 (bibtex-make-optional-field '("annote")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1597 (insert "\n}\n\n"))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1598 (bibtex-next-field t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1599 (run-hooks 'bibtex-add-entry-hook)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1600
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1601 (defun bibtex-print-help-message ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1602 "Prints helpful information about current field in current BibTeX entry."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1603 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1604 (let* ((pnt (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1605 (field-name
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1606 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1607 (beginning-of-line)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1608 (condition-case errname
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1609 (bibtex-enclosing-regexp bibtex-field)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1610 (search-failed
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1611 (goto-char pnt)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1612 (error "Not on BibTeX field")))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1613 (let ((mb (match-beginning bibtex-name-in-field))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1614 (me (match-end bibtex-name-in-field)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1615 (goto-char mb)
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1616 (buffer-substring-no-properties
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1617 (if (looking-at "OPT")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1618 (+ 3 mb)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1619 mb)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1620 me))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1621 (reference-type
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1622 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1623 (re-search-backward
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1624 bibtex-reference-maybe-empty-head nil t)
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1625 (buffer-substring-no-properties
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1626 (1+ (match-beginning bibtex-type-in-head))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1627 (match-end bibtex-type-in-head))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1628 (entry-list
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1629 (assoc-ignore-case reference-type
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1630 bibtex-entry-field-alist))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1631 (c-r-list (elt entry-list 2))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1632 (req-opt-list
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1633 (if (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1634 (member reference-type bibtex-include-OPTcrossref)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1635 c-r-list)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1636 c-r-list
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1637 (elt entry-list 1)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1638 (list-of-entries (append
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1639 (elt req-opt-list 0)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1640 (elt req-opt-list 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1641 bibtex-mode-user-optional-fields
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1642 (if (member
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1643 reference-type
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1644 bibtex-include-OPTcrossref)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1645 '(("crossref"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1646 "Label of the crossreferenced entry")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1647 (if bibtex-include-OPTannote
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1648 '(("annote"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1649 "Personal annotation (ignored)")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1650 (if bibtex-include-OPTkey
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1651 '(("key"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1652 "Key used for label creation if author and editor fields are missing"))))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1653 (goto-char pnt)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1654 (let ((comment (assoc-ignore-case field-name list-of-entries)))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1655 (if comment
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1656 (message (elt comment 1))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1657 (message "NO COMMENT AVAILABLE")))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1658
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1659 (defun bibtex-make-field (e-t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1660 "Makes a field named E-T in current BibTeX entry."
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1661 (interactive "sBibTeX field name: ")
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1662 (let ((name (if (consp e-t)
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1663 (elt e-t 0)
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
1664 e-t)))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1665 (if (interactive-p)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1666 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1667 (bibtex-find-text nil)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1668 (if (looking-at "[}\"]")
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1669 (forward-char 1))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1670 (insert ",\n")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1671 (indent-to-column bibtex-name-alignment)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1672 (insert name " = ")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1673 (indent-to-column bibtex-text-alignment)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1674 (insert bibtex-field-left-delimiter bibtex-field-right-delimiter)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1675 (if (interactive-p)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1676 (forward-char -1))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1677
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1678 (defun bibtex-make-optional-field (e-t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1679 "Makes an optional field named E-T in current BibTeX entry."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1680 (if (consp e-t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1681 (setq e-t (cons (concat "OPT" (car e-t)) (cdr e-t)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1682 (setq e-t (concat "OPT" e-t)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1683 (bibtex-make-field e-t))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1684
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1685 (defun bibtex-beginning-of-entry ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1686 "Move to beginning of BibTeX entry.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1687 If inside an entry, move to the beginning of it, otherwise move to the
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1688 beginning of the previous entry."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1689 (interactive)
11373
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
1690 (if (looking-at "^@")
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
1691 (forward-char))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1692 (re-search-backward "^@" nil 'move))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1693
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1694 (defun bibtex-end-of-entry ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1695 "Move to end of BibTeX entry.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1696 If inside an entry, move to the end of it, otherwise move to the end
11373
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
1697 of the previous entry."
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1698 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1699 (bibtex-beginning-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1700 (let ((parse-sexp-ignore-comments t))
11373
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
1701 (forward-sexp 2) ;; skip entry type and body
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1702 ))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1703
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1704 (defun bibtex-ispell-entry ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1705 "Spell whole BibTeX entry."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1706 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1707 (ispell-region (progn (bibtex-beginning-of-entry) (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1708 (progn (bibtex-end-of-entry) (point))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1709
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1710 (defun bibtex-ispell-abstract ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1711 "Spell abstract of BibTeX entry."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1712 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1713 (let ((pnt (bibtex-end-of-entry)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1714 (bibtex-beginning-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1715 (if (null
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1716 (re-search-forward "^[ \t]*[OPT]*abstract[ \t]*=" pnt))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1717 (error "No abstract in entry.")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1718 (ispell-region (point)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1719 (save-excursion (forward-sexp) (point))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1720
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1721 (defun bibtex-narrow-to-entry ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1722 "Narrow buffer to current BibTeX entry."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1723 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1724 (save-excursion
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1725 (narrow-to-region (progn (bibtex-beginning-of-entry) (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1726 (progn (bibtex-end-of-entry) (point)))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1727
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1728 (defun bibtex-hide-entry-bodies (&optional arg)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1729 "Hide all lines between first and last BibTeX entries not beginning with @.
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1730 With argument, show all text."
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1731 (interactive "P")
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
1732 (save-excursion
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1733 (beginning-of-first-bibtex-entry)
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1734 ;; subst-char-in-region modifies the buffer, despite what the
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1735 ;; documentation says...
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1736 (let ((modifiedp (buffer-modified-p))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1737 (buffer-read-only nil))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1738 (if arg
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1739 (subst-char-in-region (point) (point-max) ?\r ?\n t)
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1740 (while (save-excursion (re-search-forward "\n[^@]" (point-max) t))
5309
dc1a3f9ea36d (hide-bibtex-entry-bodies): Don't use replace-regexp.
Richard M. Stallman <rms@gnu.org>
parents: 4611
diff changeset
1741 ;; (save-excursion (replace-regexp "\n\\([^@]\\)" "\r\\1"))
dc1a3f9ea36d (hide-bibtex-entry-bodies): Don't use replace-regexp.
Richard M. Stallman <rms@gnu.org>
parents: 4611
diff changeset
1742 (save-excursion
dc1a3f9ea36d (hide-bibtex-entry-bodies): Don't use replace-regexp.
Richard M. Stallman <rms@gnu.org>
parents: 4611
diff changeset
1743 (while (re-search-forward "\n\\([^@]\\)" nil t)
dc1a3f9ea36d (hide-bibtex-entry-bodies): Don't use replace-regexp.
Richard M. Stallman <rms@gnu.org>
parents: 4611
diff changeset
1744 (replace-match "\r\\1" nil nil)))))
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
1745 (setq selective-display (not arg))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1746 (set-buffer-modified-p modifiedp))))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1747
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1748 (defun bibtex-sort-entries ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1749 "Sort BibTeX entries alphabetically by key.
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1750 Text outside of BibTeX entries is not affected. If
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1751 bibtex-sort-ignore-string-entries is non-nil, @string entries will be
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1752 ignored."
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1753 (interactive)
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1754 (save-restriction
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1755 (beginning-of-first-bibtex-entry)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1756 (narrow-to-region
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1757 (point)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1758 (save-excursion
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1759 (goto-char (point-max))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1760 (bibtex-end-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1761 (point)))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1762 (if bibtex-sort-ignore-string-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1763 (if (re-search-forward bibtex-reference nil 'move)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1764 (goto-char (match-beginning 0))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1765 (sort-subr
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1766 nil
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1767 ;; NEXTREC function
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1768 (function
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1769 (lambda ()
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1770 (if bibtex-sort-ignore-string-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1771 (if (re-search-forward bibtex-reference nil 'move)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1772 (goto-char (match-beginning 0)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1773 (if (re-search-forward bibtex-reference-head nil 'move)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1774 (goto-char (match-beginning 0))))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1775 ;; ENDREC function
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1776 'bibtex-end-of-entry
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1777 ;; STARTKEY function
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1778 (function
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1779 (lambda ()
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1780 (if bibtex-sort-ignore-string-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1781 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1782 (re-search-forward bibtex-reference)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1783 (buffer-substring-no-properties
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1784 (match-beginning bibtex-key-in-reference)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1785 (match-end bibtex-key-in-reference)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1786 (re-search-forward bibtex-reference-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1787 (buffer-substring-no-properties
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1788 (match-beginning bibtex-key-in-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1789 (match-end bibtex-key-in-head)))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1790 ;; ENDKEY function
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1791 nil)))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1792
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1793 (defun bibtex-find-entry-location (entry-name &optional ignore-dups)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1794 "Looking for place to put the BibTeX entry named ENTRY-NAME.
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1795 Performs a binary search (therefore, buffer is assumed to be in sorted
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1796 order, without duplicates (see \\[bibtex-validate-buffer]), if it is
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1797 not, bibtex-find-entry-location will fail). If entry-name is already
13968
cc71d8efd948 (bibtex-generate-autokey, bibtex-find-entry-location):
Karl Heuer <kwzh@gnu.org>
parents: 13728
diff changeset
1798 used as a reference key, an error is signaled. However, if optional
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1799 variable IGNORE-DUPS is non-nil, no error messages about duplicate
13968
cc71d8efd948 (bibtex-generate-autokey, bibtex-find-entry-location):
Karl Heuer <kwzh@gnu.org>
parents: 13728
diff changeset
1800 entries are signaled, but the error handling is assumed to be made in
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1801 the calling function. Nil is returned, if an duplicate entry error
13968
cc71d8efd948 (bibtex-generate-autokey, bibtex-find-entry-location):
Karl Heuer <kwzh@gnu.org>
parents: 13728
diff changeset
1802 occurred, and t in all other cases."
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1803 (let* ((left
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1804 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1805 (beginning-of-first-bibtex-entry)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1806 (if bibtex-sort-ignore-string-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1807 (re-search-forward bibtex-reference nil `move)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1808 (bibtex-end-of-entry))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1809 (point)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1810 (right
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1811 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1812 (goto-char (point-max))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1813 (if bibtex-sort-ignore-string-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1814 (re-search-backward bibtex-reference nil `move)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1815 (bibtex-beginning-of-entry))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1816 (point)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1817 actual-point
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1818 actual-key
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1819 (done (>= left right))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1820 new
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1821 dup)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1822 (while (not done)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1823 (setq actual-point (/ (+ left right) 2))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1824 (goto-char actual-point)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1825 (bibtex-beginning-of-entry)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1826 (setq actual-key
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1827 (if bibtex-sort-ignore-string-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1828 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1829 (re-search-forward bibtex-reference)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1830 (buffer-substring-no-properties
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1831 (match-beginning bibtex-key-in-reference)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1832 (match-end bibtex-key-in-reference)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1833 (re-search-forward bibtex-reference-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1834 (buffer-substring-no-properties
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1835 (match-beginning bibtex-key-in-head)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1836 (match-end bibtex-key-in-head))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1837 (cond
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1838 ((string-lessp entry-name actual-key)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1839 (setq new (match-beginning 0))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1840 (if (equal right new)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1841 (setq done t)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1842 (setq right new)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1843 ((string-lessp actual-key entry-name)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1844 (setq new (match-end 0))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1845 (if (equal left new)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1846 (setq done t)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1847 (setq left new)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1848 ((string-equal actual-key entry-name)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1849 (setq dup t
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1850 done t)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1851 (if (not ignore-dups)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1852 (error "Entry with key `%s' already exists!" entry-name)))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1853 (if dup
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1854 nil
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1855 (goto-char right)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1856 (if (re-search-forward bibtex-reference nil t)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1857 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1858 (setq actual-key
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1859 (buffer-substring-no-properties
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1860 (match-beginning bibtex-key-in-reference)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1861 (match-end bibtex-key-in-reference)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1862 (if (string-lessp actual-key entry-name)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1863 ;; even greater than last entry --> we must append
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1864 (progn
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1865 (goto-char (match-end 0))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1866 (newline (forward-line 2))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1867 (beginning-of-line))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1868 (goto-char right))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1869 t)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1870
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1871 (defun bibtex-validate-buffer (&optional from-point)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1872 "Validate if the current BibTeX buffer is syntactically correct.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1873 Any garbage (e.g. comments) before the first \"@\" is not tested (so
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1874 you can put comments here).
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1875 With non-nil FROM-POINT it starts with entry enclosing point."
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1876 (interactive "P")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1877 (let ((pnt (point))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1878 (starting-point
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1879 (progn
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1880 (if from-point
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1881 (bibtex-beginning-of-entry)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1882 (beginning-of-first-bibtex-entry))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1883 (point))))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1884 ;; looking if entries fit syntactical structure
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1885 (goto-char starting-point)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1886 (while (re-search-forward "^@" nil t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1887 (forward-char -1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1888 (let ((p (point)))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1889 (if (or
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1890 (looking-at "@string")
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1891 (looking-at "@preamble"))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1892 (forward-char)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1893 (if (not (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1894 (re-search-forward bibtex-reference nil t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1895 (equal p (match-beginning 0))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1896 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1897 (goto-char p)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1898 (error "Bad entry begins here"))))))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1899 ;; looking if entries are balanced (a single non-escaped quote
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1900 ;; inside braces is not detected by the former check, but
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1901 ;; bibtex-sort-entries stumbles about it
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1902 (goto-char starting-point)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1903 (map-bibtex-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1904 (function
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1905 (lambda (current)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1906 (bibtex-beginning-of-entry)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1907 (forward-sexp 2))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1908 ;; looking for correct sort order and duplicates
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1909 (if bibtex-maintain-sorted-entries
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1910 (let (previous
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1911 point)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1912 (goto-char starting-point)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1913 (map-bibtex-entries
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1914 (function
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1915 (lambda (current)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1916 (cond ((or (null previous)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1917 (string< previous current))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1918 (setq previous current
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1919 point (point)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1920 ((string-equal previous current)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1921 (error "Duplicate here with previous!"))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1922 (t
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
1923 (error "Entries out of order here!"))))))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1924 (goto-char pnt)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1925 (if from-point
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1926 (message "Part of BibTeX buffer starting at point is syntactically correct")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1927 (message "BibTeX buffer is syntactically correct"))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1928
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1929 (defun bibtex-next-field (arg)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1930 "Finds end of text of next BibTeX field; with arg, to its beginning."
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1931 (interactive "P")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1932 (bibtex-inside-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1933 (let ((start (point)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1934 (condition-case ()
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1935 (progn
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1936 (bibtex-enclosing-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1937 (goto-char (match-end 0))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1938 (forward-char 2))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1939 (error
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1940 (goto-char start)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1941 (end-of-line)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1942 (forward-char 1))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1943 (bibtex-find-text arg))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1944
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1945 (defun bibtex-find-text (arg)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1946 "Go to end of text of current field; with arg, go to beginning."
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1947 (interactive "P")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1948 (bibtex-inside-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1949 (bibtex-enclosing-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1950 (if arg
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1951 (progn
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1952 (goto-char (match-beginning bibtex-text-in-field))
11373
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
1953 (if (looking-at "[{\"]")
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1954 (forward-char 1)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1955 (goto-char (match-end bibtex-text-in-field))
11373
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
1956 (if (or
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
1957 (= (preceding-char) ?})
8381a25d021e (bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents: 10869
diff changeset
1958 (= (preceding-char) ?\"))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1959 (forward-char -1)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1960 (if bibtex-help-message
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1961 (bibtex-print-help-message)))
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
1962
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1963 (defun bibtex-remove-OPT ()
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1964 "Removes the 'OPT' starting optional arguments and goes to end of text."
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1965 (interactive)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1966 (bibtex-inside-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1967 (bibtex-enclosing-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1968 (save-excursion
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1969 (goto-char (match-beginning bibtex-name-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1970 (if (looking-at "OPT")
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
1971 ;; sct@dcs.edinburgh.ac.uk
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1972 (progn
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1973 (delete-char (length "OPT"))
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1974 (search-forward "=")
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1975 (delete-horizontal-space)
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
1976 (indent-to-column bibtex-text-alignment))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1977 (bibtex-inside-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1978
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1979 (defun bibtex-remove-double-quotes-or-braces ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
1980 "Removes \"\" or {} around string."
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1981 (interactive)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1982 (save-excursion
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1983 (bibtex-inside-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1984 (bibtex-enclosing-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1985 (let ((start (match-beginning bibtex-text-in-field))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1986 (stop (match-end bibtex-text-in-field)))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1987 (goto-char start)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1988 (while (re-search-forward bibtex-field-string stop t)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1989 (let ((beg (match-beginning 0))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1990 (end (match-end 0)))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1991 (goto-char end)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1992 (forward-char -1)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1993 (if (looking-at "[}\"]")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1994 (delete-char 1))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1995 (goto-char beg)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1996 (if (looking-at "[{\"]")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
1997 (delete-char 1)))))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1998
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1999 (defun bibtex-kill-optional-field ()
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2000 "Kill the entire enclosing optional BibTeX field."
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2001 (interactive)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2002 (bibtex-inside-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2003 (bibtex-enclosing-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2004 (goto-char (match-beginning bibtex-name-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2005 (let ((the-end (match-end 0))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2006 (the-beginning (match-beginning 0)))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2007 (if (looking-at "OPT")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2008 (progn
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2009 (goto-char the-end)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2010 (skip-chars-forward " \t\n,")
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2011 (kill-region the-beginning the-end))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2012 (error "Mandatory fields can't be killed"))))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2013
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2014 (defun bibtex-empty-field ()
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2015 "Delete the text part of the current field, replace with empty text."
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2016 (interactive)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2017 (bibtex-inside-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2018 (bibtex-enclosing-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2019 (goto-char (match-beginning bibtex-text-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2020 (kill-region (point) (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
2021 (insert (concat bibtex-field-left-delimiter
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2022 bibtex-field-right-delimiter))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2023 (bibtex-find-text t))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2024
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2025 (defun bibtex-pop (arg direction)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2026 ;; 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
2027 (let (bibtex-help-message)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2028 (bibtex-find-text nil))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2029 (save-excursion
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2030 ;; parse current field
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2031 (bibtex-inside-field)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2032 (bibtex-enclosing-field)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2033 (let ((start-old-text (match-beginning bibtex-text-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2034 (stop-old-text (match-end bibtex-text-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2035 (start-name (match-beginning bibtex-name-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2036 (stop-name (match-end bibtex-name-in-field))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2037 (new-text))
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2038 (goto-char start-name)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2039 ;; construct regexp for field with same name as this one,
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2040 ;; ignoring possible OPT's
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2041 (let ((matching-entry
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2042 (bibtex-cfield
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2043 (buffer-substring-no-properties (if (looking-at "OPT")
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2044 (+ (point) (length "OPT"))
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2045 (point))
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2046 stop-name)
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2047 bibtex-field-text)))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2048 ;; 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
2049 ;; the last one was finished
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2050 (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
2051 t
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2052 )
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2053 (t
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2054 (bibtex-enclosing-reference-maybe-empty-head)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2055 (setq bibtex-pop-previous-search-point (point))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2056 (setq bibtex-pop-next-search-point (match-end 0))))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2057 (if (eq direction 'previous)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2058 (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
2059 (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
2060 ;; Now search for arg'th previous/next similar field
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2061 (cond
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2062 ((if (eq direction 'previous)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2063 (re-search-backward matching-entry (point-min) t arg)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2064 (re-search-forward matching-entry (point-max) t arg))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2065 ;; 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
2066 (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
2067 (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
2068 (setq new-text
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2069 (buffer-substring-no-properties
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2070 (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
2071 (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
2072 ;; 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
2073 (let ((start 0)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2074 old-open
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2075 new-open
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2076 old-close
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2077 new-close)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2078 (if (equal bibtex-field-left-delimiter "{")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2079 (setq old-open ?\"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2080 new-open ?\{
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2081 old-close ?\"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2082 new-close ?\})
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2083 (setq old-open ?\{
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2084 new-open ?\"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2085 old-close ?\}
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2086 new-close ?\"))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2087 (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
2088 (let ((beg (match-beginning 0))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2089 (end (1- (match-end 0))))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2090 (if (and
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2091 (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
2092 (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
2093 (progn
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2094 (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
2095 (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
2096 (setq start (match-end 0))))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2097 (bibtex-flash-head)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2098 ;; Go back to where we started, delete old text, and pop new.
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2099 (goto-char stop-old-text)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2100 (delete-region start-old-text stop-old-text)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2101 (insert new-text))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2102 (t
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2103 ;; search failed
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2104 (error (concat "No "
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2105 (if (eq direction 'previous)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2106 "previous"
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2107 "next")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2108 " matching BibTeX field.")))))))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2109 (let (bibtex-help-message)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2110 (bibtex-find-text nil))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2111 (setq this-command 'bibtex-pop))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2112
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2113 (defun bibtex-pop-previous (arg)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2114 "Replace text of current field with the text of similar field in previous entry.
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2115 With arg, goes up ARG entries. Repeated, goes up so many times. May be
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2116 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
2117 (interactive "p")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2118 (bibtex-pop arg 'previous))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2119
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2120 (defun bibtex-pop-next (arg)
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2121 "Replace text of current field with the text of similar field in next entry.
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2122 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
2123 intermixed with \\[bibtex-pop-previous] (bibtex-pop-previous)."
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2124 (interactive "p")
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2125 (bibtex-pop arg 'next))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2126
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2127 (defun bibtex-clean-entry (&optional arg)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2128 "Finish editing the current BibTeX entry and clean it up.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2129 For all optional fields of current BibTeX entry: if empty, kill the
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2130 whole field; otherwise, remove the \"OPT\" string in the name; if text
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2131 numerical, remove double-quotes. For all mandatory fields: if empty,
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2132 signal error. If label of entry is empty or a prefix argument was
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2133 given, calculate a new entry label."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2134 (interactive "P")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2135 (bibtex-beginning-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2136 (let ((start (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2137 crossref-there)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2138 (save-restriction
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2139 (narrow-to-region start (save-excursion (bibtex-end-of-entry) (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2140 (while (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2141 (re-search-forward bibtex-field (point-max) t 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2142 (not crossref-there))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2143 ;; determine if reference has crossref entry
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2144 (let ((begin-name (match-beginning bibtex-name-in-field))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2145 (begin-text (match-beginning bibtex-text-in-field)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2146 (goto-char begin-name)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2147 (if (looking-at "\\(OPTcrossref\\)\\|\\(crossref\\)")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2148 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2149 (goto-char begin-text)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2150 (if (not (looking-at "\\(\"\"\\)\\|\\({}\\)"))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2151 (setq crossref-there t))))))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2152 (bibtex-enclosing-reference-maybe-empty-head)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2153 (re-search-forward bibtex-reference-type)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2154 (let ((begin-type (1+ (match-beginning 0)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2155 (end-type (match-end 0)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2156 (goto-char start)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2157 (while (re-search-forward bibtex-field (point-max) t 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2158 (let ((begin-field (match-beginning 0))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2159 (end-field (match-end 0))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2160 (begin-name (match-beginning bibtex-name-in-field))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2161 (end-name (match-end bibtex-name-in-field))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2162 (begin-text (match-beginning bibtex-text-in-field))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2163 (end-text (match-end bibtex-text-in-field))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2164 )
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2165 (goto-char begin-name)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2166 (cond ((and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2167 (looking-at "OPT")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2168 bibtex-clean-entry-zap-empty-opts)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2169 (goto-char begin-text)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2170 (if (looking-at "\\(\"\"\\)\\|\\({}\\)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2171 ;; empty: delete whole field if really optional
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2172 ;; (missing crossref handled) or complain
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2173 (if (and
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2174 (not crossref-there)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2175 (assoc
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2176 (downcase
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2177 (buffer-substring-no-properties
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2178 (+ (length "OPT") begin-name) end-name))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2179 (car (car (cdr
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2180 (assoc-ignore-case
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2181 (buffer-substring-no-properties
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2182 begin-type end-type)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2183 bibtex-entry-field-alist))))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2184 ;; field is not really optional
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2185 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2186 (goto-char begin-name)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2187 (delete-char (length "OPT"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2188 ;; make field non-OPT
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2189 (search-forward "=")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2190 (delete-horizontal-space)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2191 (indent-to-column bibtex-text-alignment)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2192 (forward-char)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2193 ;; and loop to go through next test
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2194 (error "Mandatory field ``%s'' is empty"
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2195 (buffer-substring-no-properties
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2196 begin-name
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2197 end-name)))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2198 ;; field is optional
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2199 (delete-region begin-field end-field))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2200 ;; otherwise: not empty, delete "OPT"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2201 (goto-char begin-name)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2202 (delete-char (length "OPT"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2203 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2204 ;; fixup alignment. [alarson:19920309.2047CST]
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2205 (search-forward "=")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2206 (delete-horizontal-space)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2207 (indent-to-column bibtex-text-alignment))
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2208 (goto-char begin-field)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2209 ;; and loop to go through next test
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2210 ))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2211 (t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2212 (goto-char begin-text)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2213 (cond ((looking-at "\\(\"[0-9]+\"\\)\\|\\({[0-9]+}\\)")
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2214 ;; if numerical,
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2215 (goto-char end-text)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2216 (delete-char -1)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2217 (goto-char begin-text)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2218 (delete-char 1)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2219 ;; delete enclosing delimiters
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2220 (goto-char end-field)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2221 ;; go to end for next search
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2222 (forward-char -2)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2223 ;; to compensate for the 2 delimiters deleted
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2224 )
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2225 ((looking-at "\\(\"\"\\)\\|\\({}\\)")
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2226 ;; if empty field, complain
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2227 (forward-char 1)
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2228 (if (not (or (equal (buffer-substring-no-properties
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2229 begin-name
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2230 (+ begin-name 3))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2231 "OPT")
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2232 (equal (buffer-substring-no-properties
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2233 begin-name
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2234 (+ begin-name 3))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2235 "opt")))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2236 (error "Mandatory field ``%s'' is empty"
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2237 (buffer-substring-no-properties
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2238 begin-name end-name))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2239 (t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2240 (goto-char end-field)))))))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2241 (goto-char start)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2242 (bibtex-end-of-entry))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2243 (let* ((eob (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2244 (bibtex-end-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2245 (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2246 (key (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2247 (bibtex-beginning-of-entry)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2248 (if (re-search-forward
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2249 bibtex-reference-head eob t)
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2250 (buffer-substring-no-properties
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2251 (match-beginning bibtex-key-in-head)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2252 (match-end bibtex-key-in-head))))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2253 (if (or
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2254 arg
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2255 (not key))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2256 (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2257 (let ((autokey
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2258 (if bibtex-autokey-edit-before-use
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2259 (read-from-minibuffer "Key to use: "
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2260 (bibtex-generate-autokey))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2261 (bibtex-generate-autokey))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2262 (bibtex-beginning-of-entry)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2263 (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
2264 (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
2265 (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
2266 (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
2267 (insert autokey)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2268 (let ((start (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2269 (bibtex-beginning-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2270 (point)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2271 (end (progn
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2272 (bibtex-end-of-entry)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2273 (re-search-forward "^@" nil 'move)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2274 (beginning-of-line)
10353
363bf89a3081 (bibtex-clean-entry): Killing text while editing
Richard M. Stallman <rms@gnu.org>
parents: 10219
diff changeset
2275 (point)))
363bf89a3081 (bibtex-clean-entry): Killing text while editing
Richard M. Stallman <rms@gnu.org>
parents: 10219
diff changeset
2276 last-command)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2277 (kill-region start end)
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2278 (let ((success
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2279 (or
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2280 (not bibtex-maintain-sorted-entries)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2281 (bibtex-find-entry-location autokey t))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2282 (yank)
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2283 (setq kill-ring (cdr kill-ring))
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2284 (forward-char -1)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2285 (bibtex-beginning-of-entry)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2286 (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
2287 (if (not success)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2288 (error
13728
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2289 "New inserted reference may be a duplicate."))))))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2290 (save-excursion
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2291 (let ((start (progn (bibtex-beginning-of-entry) (point)))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2292 (end (progn (bibtex-end-of-entry) (point))))
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2293 (save-restriction
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2294 (narrow-to-region start end)
4b7903cfa7ee (bibtex-auto-fill-function): Adapted for use with
Karl Heuer <kwzh@gnu.org>
parents: 12770
diff changeset
2295 (bibtex-parse-keys t)))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2296
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2297 (defun bibtex-complete-string ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2298 "Complete word fragment before point to longest prefix of a defined string.
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2299 If point is not after the part of a word, all strings are listed."
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2300 (interactive "*")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2301 (let* ((end (point))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2302 (beg (save-excursion
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2303 (re-search-backward "[ \t{\"]")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2304 (forward-char 1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2305 (point)))
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2306 (part-of-word (buffer-substring-no-properties beg end))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2307 (string-list (copy-sequence bibtex-completion-candidates))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2308 (case-fold-search t)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2309 (completion (save-excursion
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2310 (while (re-search-backward
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2311 bibtex-string (point-min) t)
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2312 (setq string-list
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2313 (cons
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2314 (list
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2315 (buffer-substring-no-properties
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2316 (match-beginning bibtex-key-in-string)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2317 (match-end bibtex-key-in-string)))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2318 string-list)))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2319 (setq string-list
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2320 (sort string-list
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2321 (lambda(x y)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2322 (string-lessp
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2323 (car x)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2324 (car y)))))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2325 (try-completion part-of-word string-list))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2326 (cond ((eq completion t)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2327 ;; remove double-quotes or braces if field is no concatenation
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2328 (save-excursion
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2329 (bibtex-inside-field)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2330 (bibtex-enclosing-field)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2331 (let ((end (match-end bibtex-text-in-field)))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2332 (goto-char (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
2333 (if (and
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2334 (looking-at bibtex-field-string)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2335 (equal (match-end 0) end))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2336 (bibtex-remove-double-quotes-or-braces)))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2337 ((null completion)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2338 (error "Can't find completion for \"%s\"" part-of-word))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2339 ((not (string= part-of-word completion))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2340 (delete-region beg end)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2341 (insert completion)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2342 (if (assoc completion string-list)
14789
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2343 ;; remove double-quotes or braces if field is no concatenation
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2344 (save-excursion
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2345 (bibtex-inside-field)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2346 (bibtex-enclosing-field)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2347 (let ((end (match-end bibtex-text-in-field)))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2348 (goto-char (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
2349 (if (and
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2350 (looking-at bibtex-field-string)
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2351 (equal (match-end 0) end))
d68b71228abd (bibtex-pop): New generic function which unifies the
Richard M. Stallman <rms@gnu.org>
parents: 14410
diff changeset
2352 (bibtex-remove-double-quotes-or-braces))))))
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2353 (t
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2354 (message "Making completion list...")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2355 (let ((list (all-completions part-of-word string-list)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2356 (with-output-to-temp-buffer "*Completions*"
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2357 (display-completion-list list)))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2358 (message "Making completion list...done")))))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2359
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2360 (defun bibtex-Article ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2361 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2362 (bibtex-entry "Article"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2363
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2364 (defun bibtex-Book ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2365 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2366 (bibtex-entry "Book"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2367
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2368 (defun bibtex-Booklet ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2369 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2370 (bibtex-entry "Booklet"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2371
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2372 (defun bibtex-InBook ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2373 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2374 (bibtex-entry "InBook"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2375
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2376 (defun bibtex-InCollection ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2377 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2378 (bibtex-entry "InCollection"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2379
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2380 (defun bibtex-InProceedings ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2381 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2382 (bibtex-entry "InProceedings"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2383
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2384 (defun bibtex-Manual ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2385 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2386 (bibtex-entry "Manual"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2387
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2388 (defun bibtex-MastersThesis ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2389 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2390 (bibtex-entry "MastersThesis"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2391
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2392 (defun bibtex-Misc ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2393 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2394 (bibtex-entry "Misc"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2395
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2396 (defun bibtex-PhdThesis ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2397 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2398 (bibtex-entry "PhdThesis"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2399
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2400 (defun bibtex-Proceedings ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2401 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2402 (bibtex-entry "Proceedings"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2403
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2404 (defun bibtex-TechReport ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2405 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2406 (bibtex-entry "TechReport"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2407
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2408 (defun bibtex-Unpublished ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2409 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2410 (bibtex-entry "Unpublished"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2411
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2412 (defun bibtex-string ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2413 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2414 (bibtex-move-outside-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2415 (insert
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2416 (concat
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2417 "@string{ = "
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2418 bibtex-field-left-delimiter
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2419 bibtex-field-right-delimiter
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2420 "}\n"))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2421 (forward-line -1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2422 (forward-char 8))
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2423
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2424 (defun bibtex-preamble ()
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2425 (interactive)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2426 (bibtex-move-outside-of-entry)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2427 (insert "@Preamble{}\n")
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2428 (forward-line -1)
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2429 (forward-char 10))
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2430
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2431
12700
b3a8ee2da96a Add keywords and comments as per conventions.
Richard M. Stallman <rms@gnu.org>
parents: 12028
diff changeset
2432 ;; Make BibTeX a Feature
257
e5ba2ba35226 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2433
10219
d97313bb6f39 (bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 10106
diff changeset
2434 (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
2435
2465861025cd Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
2436 ;;; bibtex.el ends here