Mercurial > emacs
annotate lisp/textmodes/bibtex.el @ 11873:6ac51c0face8
(gdb_lisp_params): New enum type.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 22 May 1995 22:16:07 +0000 |
parents | 8381a25d021e |
children | f667b7adde92 |
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 |
11373
8381a25d021e
(bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents:
10869
diff
changeset
|
3 ;; Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc. |
845 | 4 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
5 ;; Author: Stefan Schoef <schoef@informatik.uni-oldenburg.de> |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
6 ;; Bengt Martensson <ubrinf!mond!bengt> |
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> |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
10 ;; Maintainer: Stefan Schoef <schoef@informatik.uni-oldenburg.de> |
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 | 13 ;; This file is part of GNU Emacs. |
14 | |
15 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
16 ;; it under the terms of the GNU General Public License as published by | |
1851 | 17 ;; the Free Software Foundation; either version 2, or (at your option) |
257 | 18 ;; any later version. |
19 | |
20 ;; GNU Emacs is distributed in the hope that it will be useful, | |
21 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
23 ;; GNU General Public License for more details. | |
24 | |
25 ;; You should have received a copy of the GNU General Public License | |
26 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
27 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
28 | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
29 ;;; TODO: |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
30 ;; Distribute texinfo file. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
31 ;; A better concept for intermixing quote and brace delimiters is |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
32 ;; needed. |
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
|
33 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
34 ;;; PURPOSE: |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
35 ;; Major mode for editing and validating BibTeX files. |
257 | 36 |
37 | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
38 ;;; USAGE: |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
39 ;; 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
|
40 ;; 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
|
41 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
42 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
43 ;;; KNOWN BUGS: |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
44 ;; 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
|
45 ;; 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
|
46 ;; 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
|
47 ;; 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
|
48 ;; 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
|
49 ;; 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
|
50 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
51 ;;; (current keeper: schoef@informatik.uni-oldenburg.de |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
52 ;;; previous: alarson@src.honeywell.com) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
53 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
54 ;;; USER OPTIONS: |
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 | 79 |
80 (defvar bibtex-clean-entry-zap-empty-opts t | |
561 | 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 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
84 "*If true, BibTeX @STRING entries are not sort-significant. |
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 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
86 (e.g. sorting, locating alphabetical position for new entries, etc.).") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
87 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
88 (defvar bibtex-maintain-sorted-entries t |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
89 "*If true, bibtex-mode maintains all BibTeX entries in sorted order. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
90 Setting this variable to nil will strip off some comfort (e.g. TAB |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
91 completion for reference keys) from bibtex-mode.") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
92 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
93 (defvar bibtex-entry-field-alist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
94 '( |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
95 ("Article" . (((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
96 ("title" "Title of the article (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
97 ("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
|
98 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
99 (("volume" "Volume of the journal") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
100 ("number" "Number of the journal") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
101 ("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
|
102 ("pages" "Pages in the journal") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
103 ("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
|
104 ((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
105 ("title" "Title of the article (will be converted to lowercase)")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
106 (("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
|
107 ("year" "Year of publication") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
108 ("volume" "Volume of the journal") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
109 ("number" "Number of the journal") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
110 ("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
|
111 ("pages" "Pages in the journal") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
112 ("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
|
113 ("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
|
114 ("title" "Title of the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
115 ("publisher" "Publishing company") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
116 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
117 (("editor" "Editor1 [and Editor2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
118 ("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
|
119 ("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
|
120 ("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
|
121 ("address" "Address of the publisher") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
122 ("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
|
123 ("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
|
124 ("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
|
125 ("Booklet" . (((("title" "Title of the booklet (will be converted to lowercase)")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
126 (("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
127 ("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
|
128 ("address" "Address of the publisher") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
129 ("year" "Year of publication") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
130 ("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
|
131 ("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
|
132 ("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
|
133 ("title" "Title of the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
134 ("chapter" "Chapter in the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
135 ("publisher" "Publishing company") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
136 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
137 (("editor" "Editor1 [and Editor2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
138 ("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
|
139 ("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
|
140 ("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
|
141 ("address" "Address of the publisher") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
142 ("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
|
143 ("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
|
144 ("pages" "Pages in the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
145 ("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
|
146 ("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
|
147 ((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
148 ("title" "Title of the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
149 ("chapter" "Chapter in the book")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
150 (("publisher" "Publishing company") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
151 ("year" "Year of publication") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
152 ("editor" "Editor1 [and Editor2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
153 ("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
|
154 ("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
|
155 ("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
|
156 ("address" "Address of the publisher") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
157 ("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
|
158 ("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
|
159 ("pages" "Pages in the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
160 ("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
|
161 ("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
|
162 ("InCollection" . (((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
163 ("title" "Title of the article in book (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
164 ("booktitle" "Name of the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
165 ("publisher" "Publishing company") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
166 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
167 (("editor" "Editor1 [and Editor2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
168 ("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
|
169 ("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
|
170 ("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
|
171 ("chapter" "Chapter in the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
172 ("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
|
173 ("address" "Address of the publisher") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
174 ("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
|
175 ("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
|
176 ("pages" "Pages in the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
177 ("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
|
178 ((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
179 ("title" "Title of the article in book (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
180 ("booktitle" "Name of the book")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
181 (("publisher" "Publishing company") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
182 ("year" "Year of publication") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
183 ("editor" "Editor1 [and Editor2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
184 ("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
|
185 ("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
|
186 ("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
|
187 ("chapter" "Chapter in the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
188 ("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
|
189 ("address" "Address of the publisher") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
190 ("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
|
191 ("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
|
192 ("pages" "Pages in the book") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
193 ("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
|
194 ("InProceedings" . (((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
195 ("title" "Title of the article in proceedings (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
196 ("booktitle" "Name of the conference proceedings") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
197 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
198 (("editor" "Editor1 [and Editor2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
199 ("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
|
200 ("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
|
201 ("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
|
202 ("organization" "Sponsoring organization of the conference") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
203 ("publisher" "Publishing company, its location") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
204 ("address" "Location of the Proceedings") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
205 ("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
|
206 ("pages" "Pages in the conference proceedings") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
207 ("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
|
208 ((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
209 ("title" "Title of the article in proceedings (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
210 ("booktitle" "Name of the conference proceedings")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
211 (("editor" "Editor1 [and Editor2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
212 ("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
|
213 ("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
|
214 ("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
|
215 ("year" "Year of publication") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
216 ("organization" "Sponsoring organization of the conference") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
217 ("publisher" "Publishing company, its location") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
218 ("address" "Location of the Proceedings") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
219 ("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
|
220 ("pages" "Pages in the conference proceedings") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
221 ("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
|
222 ("Manual" . (((("title" "Title of the manual")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
223 (("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
224 ("organization" "Publishing organization of the manual") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
225 ("address" "Address of the organization") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
226 ("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
|
227 ("year" "Year of publication") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
228 ("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
|
229 ("note" "Remarks to be put at the end of the \\bibitem"))))) |
257 | 230 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
231 ("MastersThesis" . (((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
232 ("title" "Title of the master\'s thesis (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
233 ("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
|
234 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
235 (("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
|
236 ("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
|
237 ("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
|
238 ("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
|
239 ("Misc" . ((() |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
240 (("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
241 ("title" "Title of the reference (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
242 ("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
|
243 ("year" "Year of publication") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
244 ("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
|
245 ("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
|
246 ("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
|
247 ("title" "Title of the PhD. thesis") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
248 ("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
|
249 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
250 (("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
|
251 ("type" "Type of the PhD. thesis") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
252 ("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
|
253 ("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
|
254 ("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
|
255 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
256 (("editor" "Editor1 [and Editor2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
257 ("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
|
258 ("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
|
259 ("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
|
260 ("publisher" "Publishing company, its location") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
261 ("organization" "Sponsoring organization of the conference") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
262 ("address" "Location of the Proceedings") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
263 ("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
|
264 ("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
|
265 ("TechReport" . (((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
266 ("title" "Title of the technical report (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
267 ("institution" "Sponsoring institution of the report") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
268 ("year" "Year of publication")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
269 (("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
|
270 ("number" "Number of the technical report") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
271 ("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
|
272 ("month" "Month of the publication as a string (remove braces)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
273 ("note" "Remarks to be put at the end of the \\bibitem"))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
274 ("Unpublished" . (((("author" "Author1 [and Author2 ...] [and others]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
275 ("title" "Title of the unpublished reference (will be converted to lowercase)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
276 ("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
|
277 (("year" "Year of publication") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
278 ("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
|
279 ) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
280 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
281 "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
|
282 List of |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
283 (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
|
284 triples. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
285 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
|
286 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
|
287 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
|
288 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
|
289 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
|
290 (first element = name of the field, |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
291 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
|
292 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
293 (defvar bibtex-predefined-strings |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
294 '( |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
295 ("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
|
296 ("sep") ("oct") ("nov") ("dec") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
297 ("acmcs") ("acta") ("cacm") ("ibmjrd") ("ibmsj") ("ieeese") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
298 ("ieeetc") ("ieeetcad") ("ipl") ("jacm") ("jcss") ("scp") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
299 ("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
|
300 ("toplas") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
301 ) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
302 "Alist of string definitions. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
303 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
|
304 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
|
305 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
306 (defvar bibtex-string-files nil |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
307 "*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
|
308 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
|
309 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
|
310 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
|
311 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
312 (defvar bibtex-help-message t |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
313 "*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
|
314 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
315 (defvar bibtex-autokey-names 1 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
316 "*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
|
317 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
|
318 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
|
319 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
320 (defvar bibtex-autokey-name-change-strings |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
321 '(("\\\\\\\"a" "ae") ("\\\\\\\"o" "oe") ("\\\\\\\"u" "ue") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
322 ("\\\\\\\"s" "ss") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
323 ("\\\\\\\"A" "Ae") ("\\\\\\\"O" "Oe") ("\\\\\\\"U" "Ue") |
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 "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
|
326 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
|
327 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
|
328 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
|
329 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
|
330 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
331 (defvar bibtex-autokey-name-length 'infty |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
332 "*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
|
333 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
|
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-separator "" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
337 "*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
|
338 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
|
339 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
340 (defvar bibtex-autokey-year-length 2 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
341 "*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
|
342 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
|
343 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
344 (defvar bibtex-autokey-titlewords 5 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
345 "*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
|
346 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
|
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-title-terminators |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
350 '("\\." "!" "\\?" ":" ";" "---") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
351 "*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
|
352 Case of the regexps is ignored. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
353 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
|
354 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
355 (defvar bibtex-autokey-titlewords-stretch 2 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
356 "*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
|
357 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
|
358 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
|
359 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
360 (defvar bibtex-autokey-titleword-first-ignore |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
361 '("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
|
362 "*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
|
363 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
|
364 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
|
365 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
|
366 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
367 (defvar bibtex-autokey-titleword-abbrevs nil |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
368 "*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
|
369 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
|
370 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
|
371 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
|
372 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
373 (defvar bibtex-autokey-titleword-change-strings |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
374 '(("\\\\\\\"a" "ae") ("\\\\\\\"o" "oe") ("\\\\\\\"u" "ue") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
375 ("\\\\\\\"s" "ss") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
376 ("\\\\\\\"A" "Ae") ("\\\\\\\"O" "Oe") ("\\\\\\\"U" "Ue") |
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 "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
|
379 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
|
380 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
|
381 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
|
382 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
383 (defvar bibtex-autokey-titleword-length 5 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
384 "*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
|
385 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
|
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-separator "_" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
389 "*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
|
390 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
|
391 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
392 (defvar bibtex-autokey-name-year-separator "" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
393 "*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
|
394 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
|
395 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
396 (defvar bibtex-autokey-year-title-separator ":_" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
397 "*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
|
398 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
|
399 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
400 (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
|
401 "*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
|
402 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
403 |
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 ;;; 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
|
406 (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
|
407 (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
|
408 ;; [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
|
409 (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
|
410 (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
|
411 (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
|
412 (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
|
413 (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
|
414 (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
|
415 (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
|
416 (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
|
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 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 |
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 (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
|
421 (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
|
422 |
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 (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
|
424 (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
|
425 (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
|
426 (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
|
427 (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
|
428 (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
|
429 (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
|
430 (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
|
431 (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
|
432 (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
|
433 (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
|
434 (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
|
435 (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
|
436 (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
|
437 (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
|
438 (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
|
439 (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
|
440 (define-key km "\C-c\C-a" 'show-all) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
441 (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
|
442 (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
|
443 (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
|
444 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
445 (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
|
446 (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
|
447 (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
|
448 (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
|
449 (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
|
450 (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
|
451 (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
|
452 (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
|
453 (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
|
454 (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
|
455 (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
|
456 (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
|
457 (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
|
458 (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
|
459 (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
|
460 (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
|
461 (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
|
462 (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
|
463 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
|
464 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
465 (define-key bibtex-mode-map [menu-bar move/edit] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
466 (cons "BibTeX-Edit" (make-sparse-keymap "BibTeX-Edit"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
467 (define-key bibtex-mode-map [menu-bar move/edit bibtex-print-help-message] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
468 '("Help about current field" . bibtex-print-help-message)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
469 (define-key bibtex-mode-map [menu-bar move/edit bibtex-complete-string] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
470 '("String Complete" . bibtex-complete-string)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
471 (define-key bibtex-mode-map [menu-bar move/edit bibtex-next-field] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
472 '("Next Field" . bibtex-next-field)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
473 (define-key bibtex-mode-map [menu-bar move/edit bibtex-find-text] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
474 '("End of Field" . bibtex-find-text)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
475 (define-key bibtex-mode-map [menu-bar move/edit bibtex-pop-previous] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
476 '("Snatch from Similar Preceding Field" . bibtex-pop-previous)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
477 (define-key bibtex-mode-map [menu-bar move/edit bibtex-pop-next] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
478 '("Snatch from Similar Following Field" . bibtex-pop-next)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
479 (define-key bibtex-mode-map [menu-bar move/edit bibtex-remove-OPT] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
480 '("Remove OPT" . bibtex-remove-OPT)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
481 (define-key bibtex-mode-map [menu-bar move/edit bibtex-remove-double-quotes-or-braces] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
482 '("Remove Quotes or Braces" . bibtex-remove-double-quotes-or-braces)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
483 (define-key bibtex-mode-map [menu-bar move/edit bibtex-clean-entry] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
484 '("Clean up Entry" . bibtex-clean-entry)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
485 (define-key bibtex-mode-map [menu-bar move/edit bibtex-sort-entries] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
486 '("Sort Entries" . bibtex-sort-entries)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
487 (define-key bibtex-mode-map [menu-bar move/edit bibtex-validate-buffer] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
488 '("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
|
489 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
490 (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
|
491 (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
|
492 (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
|
493 '("Preamble" . bibtex-preamble)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
494 (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
|
495 '("String" . bibtex-string)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
496 (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
|
497 '("Miscellaneous" . bibtex-Misc)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
498 (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
|
499 '("Unpublished" . bibtex-Unpublished)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
500 (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
|
501 '("Technical Manual" . bibtex-Manual)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
502 (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
|
503 '("Technical Report" . bibtex-TechReport)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
504 (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
|
505 '("Master's Thesis" . bibtex-MastersThesis)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
506 (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
|
507 '("PhD. Thesis" . bibtex-PhdThesis)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
508 (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
|
509 '("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
|
510 (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
|
511 '("Book" . bibtex-Book)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
512 (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
|
513 '("Conference Proceedings" . bibtex-Proceedings)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
514 (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
|
515 '("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
|
516 (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
|
517 '("Article in a Collection" . bibtex-InCollection)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
518 (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
|
519 '("Article in Conference Proceedings" . bibtex-InProceedings)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
520 (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
|
521 '("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
|
522 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
523 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
524 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
525 ;;; 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
|
526 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
527 (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
|
528 ;; 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
|
529 ;; 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
|
530 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
531 (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
|
532 ;; 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
|
533 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
534 (defvar bibtex-completion-candidates nil) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
535 ;; 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
|
536 ;; 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
|
537 ;; buffer-local. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
538 (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
|
539 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
540 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
541 ;;; FUNCTIONS to parse the BibTeX entries |
257 | 542 |
543 (defun bibtex-cfield (name text) | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
544 ;; Create a regexp for a BibTeX field of name NAME and text TEXT. |
257 | 545 (concat ",[ \t\n]*\\(" |
546 name | |
547 "\\)[ \t\n]*=[ \t\n]*\\(" | |
548 text | |
549 "\\)")) | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
550 (defconst bibtex-name-in-cfield 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
551 ;; The regexp subexpression number of the name part in bibtex-cfield. |
257 | 552 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
553 (defconst bibtex-text-in-cfield 2) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
554 ;; 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
|
555 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
556 (defconst bibtex-field-name "[A-Za-z][]A-Za-z0-9.:;?!`'()/*@_+=-]*") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
557 ;; Regexp defining the name part of a BibTeX field. |
257 | 558 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
559 (defconst bibtex-field-const "[0-9A-Za-z][A-Za-z0-9:_+-]*" |
257 | 560 "Format of a bibtex field constant.") |
561 | 561 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
562 (defconst bibtex-field-string |
257 | 563 (concat |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
564 "\\(" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
565 "{\\(\\({\\(\\({[^}]*}\\)\\|\\([^{}]\\)\\)*}\\)\\|\\([^{}]\\)\\)*}" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
566 ;; maximal twice nested {} |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
567 "\\)\\|\\(" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
568 "\"[^\"]*[^\\\\]\"\\|\"\"\\)")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
569 ;; Match either a string or an empty string. |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
570 |
257 | 571 (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
|
572 (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
|
573 ;; Match either bibtex-field-string or bibtex-field-const. |
257 | 574 |
575 (defconst bibtex-field-text | |
576 (concat | |
577 "\\(" bibtex-field-string-or-const "\\)" | |
578 "\\([ \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
|
579 "{[^{}]*[^\\\\]}")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
580 ;; 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
|
581 ;; or an empty string, or a constant followed by one or more # / |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
582 ;; constant pairs. Also matches simple {...} patterns. |
257 | 583 |
584 (defconst bibtex-field | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
585 (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
|
586 ;; 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
|
587 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
588 (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
|
589 ;; The regexp subexpression number of the name part in BibTeX-field. |
257 | 590 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
591 (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
|
592 ;; The regexp subexpression number of the text part in BibTeX-field. |
257 | 593 |
594 (defconst bibtex-reference-type | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
595 "@[A-Za-z]+") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
596 ;; 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
|
597 |
257 | 598 (defconst bibtex-reference-head |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
599 (concat "^\\( \\|\t\\)*\\(" |
257 | 600 bibtex-reference-type |
601 "\\)[ \t]*[({]\\(" | |
602 bibtex-field-name | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
603 "\\)")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
604 ;; 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
|
605 ;; entry. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
606 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
607 (defconst bibtex-type-in-head 2) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
608 ;; 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
|
609 ;; bibtex-reference-head. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
610 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
611 (defconst bibtex-key-in-head 3) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
612 ;; 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
|
613 ;; bibtex-reference-head. |
257 | 614 |
615 (defconst bibtex-reference | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
616 (concat bibtex-reference-head |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
617 "\\([ \t\n]*" bibtex-field "\\)*" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
618 "[ \t\n]*[})]")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
619 ;; Regexp defining the format of a BibTeX reference entry. |
257 | 620 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
621 (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
|
622 ;; 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
|
623 ;; bibtex-reference. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
624 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
625 (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
|
626 ;; 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
|
627 ;; bibtex-reference. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
628 |
257 | 629 (defconst bibtex-string |
630 (concat "^[ \t]*@[sS][tT][rR][iI][nN][gG][ \t\n]*[({][ \t\n]*\\(" | |
631 bibtex-field-name | |
632 "\\)[ \t\n]*=[ \t\n]*\\(" | |
633 bibtex-field-text | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
634 "\\)[ \t\n]*[})]")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
635 ;; Regexp defining the format of a BibTeX string entry. |
257 | 636 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
637 (defconst bibtex-name-in-string 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
638 ;; 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
|
639 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
640 (defconst bibtex-text-in-string 2) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
641 ;; 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
|
642 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
643 (defconst bibtex-name-alignment 2) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
644 ;; 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
|
645 ;; grounds only. |
257 | 646 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
647 (defconst bibtex-text-alignment (length " organization = ")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
648 ;; 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
|
649 ;; 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
|
650 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
651 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
652 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
653 ;;; 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
|
654 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
655 (defun assoc-ignore-case (string alist) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
656 ;; 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
|
657 ;; 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
|
658 ;; 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
|
659 (or (assoc string alist) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
660 (while (and alist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
661 (not (string-equal |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
662 (downcase string) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
663 (downcase (car (car alist)))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
664 (setq alist (cdr alist))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
665 (car alist))) |
257 | 666 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
667 (defun member-of-regexp (string list) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
668 ;; 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
|
669 ;; 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
|
670 ;; `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
|
671 ;; car matches STRING. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
672 (while |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
673 (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
674 list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
675 (not |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
676 (string-match |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
677 (concat "^" (car list) "$") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
678 string))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
679 (setq list (cdr list))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
680 list) |
257 | 681 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
682 (defun assoc-of-regexp (string alist) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
683 ;; 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
|
684 ;; 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
|
685 ;; 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
|
686 ;; whose car matches STRING. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
687 (while |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
688 (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
689 alist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
690 (not |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
691 (string-match |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
692 (concat "^" (car (car alist)) "$") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
693 string))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
694 (setq alist (cdr alist))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
695 (car alist)) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
696 |
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
|
697 (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
|
698 (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
|
699 (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
|
700 (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
|
701 ;; 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
|
702 ;; 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
|
703 ;; 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
|
704 ;; 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
|
705 (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
|
706 ;; 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
|
707 ((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
|
708 (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
|
709 (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
|
710 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
711 (defun map-bibtex-entries (fun) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
712 ;; 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
|
713 ;; 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
|
714 ;; of the entry, and with point inside the entry. If |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
715 ;; bibtex-sort-ignore-string-entries is true, FUN will not be called |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
716 ;; for @string entries. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
717 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
718 (while (re-search-forward "^@[^{]*{[ \t]*\\([^, ]*\\)" nil t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
719 (if (and bibtex-sort-ignore-string-entries |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
720 (string-equal "@string{" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
721 (downcase (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
722 (match-beginning 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
723 (match-beginning 1))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
724 nil |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
725 (funcall fun (buffer-substring (match-beginning 1) (match-end 1)))))) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
726 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
727 (defun bibtex-flash-head () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
728 ;; 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
|
729 (let ((flash)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
730 (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
|
731 (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
|
732 (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
|
733 (t |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
734 (end-of-line) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
735 (skip-chars-backward " \t") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
736 (setq flash (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
737 (beginning-of-line) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
738 (skip-chars-forward " \t"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
739 (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
|
740 (sit-for 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
741 (message "From: %s" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
742 (buffer-substring (point) flash))))) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
743 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
744 (defun bibtex-move-outside-of-entry () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
745 ;; 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
|
746 (cond ((or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
747 (= (point) (point-max)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
748 (= (point) (point-min)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
749 (looking-at "[ \n]*@") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
750 ) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
751 t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
752 (t |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
753 (backward-paragraph) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
754 (forward-paragraph))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
755 (re-search-forward "[ \t\n]*" (point-max) t)) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
756 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
757 (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
|
758 ;; 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
|
759 (goto-char (point-min)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
760 (cond |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
761 ((re-search-forward "^@" nil 'move) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
762 (beginning-of-line)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
763 ((and (bobp) (eobp)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
764 nil) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
765 (t |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
766 (message "Warning: No BibTeX entries found!")))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
767 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
768 (defun bibtex-inside-field () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
769 ;; 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
|
770 (end-of-line) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
771 (skip-chars-backward " \t") ;MON - maybe delete these chars? |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
772 (cond ((= (preceding-char) ?,) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
773 (forward-char -2))) ; -1 --> -2 sct@dcs.edinburgh.ac.uk |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
774 (cond ((= (preceding-char) (aref bibtex-field-right-delimiter 0)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
775 (forward-char -1)))) ;MON - only go back if quote |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
776 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
777 (defun bibtex-enclosing-field () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
778 ;; 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
|
779 ;; 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
|
780 ;; sct@dcs.edinburgh.ac.uk |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
781 (let ((old-point (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
782 (condition-case errname |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
783 (bibtex-enclosing-regexp bibtex-field) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
784 (search-failed |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
785 (goto-char old-point) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
786 (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
|
787 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
788 (defun bibtex-enclosing-reference () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
789 ;; Search for BibTeX reference enclosing point. Point moves to begin |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
790 ;; of reference. (match-end 0) denotes end of reference. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
791 ;; Hacked up for speed. Parsing isn't guaranteed any more. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
792 ;; schoef@informatik.uni-oldenburg.de |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
793 ;; sct@dcs.edinburgh.ac.uk |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
794 (let ((old-point (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
795 (if (not |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
796 (re-search-backward |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
797 "^@[A-Za-z]+[ \t\n]*[{(][^, \t\n]*[ \t\n]*," |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
798 (point-min) t)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
799 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
800 (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
|
801 (goto-char old-point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
802 (let ((pnt (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
803 (if (not |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
804 (re-search-forward "^[)}]$" (point-max) t)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
805 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
806 (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
|
807 (goto-char old-point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
808 (goto-char pnt))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
809 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
810 (defun bibtex-enclosing-regexp (regexp) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
811 ;; 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
|
812 ;; 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
|
813 ;; 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
|
814 ;; undefined location. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
815 ;; Doesn't something like this exist already? |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
816 ; compute reasonable limits for the loop |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
817 (let* ((initial (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
818 (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
|
819 (match-end 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
820 (point-max))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
821 (left |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
822 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
823 (goto-char initial) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
824 (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
|
825 (match-beginning 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
826 (point-min))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
827 ; 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
|
828 (goto-char left) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
829 (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
|
830 (if (> (match-beginning 0) initial) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
831 (signal 'search-failed (list regexp))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
832 (while (<= (match-end 0) initial) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
833 (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
|
834 (if (> (match-beginning 0) initial) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
835 (signal 'search-failed (list regexp)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
836 )) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
837 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
838 (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
|
839 ;; 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
|
840 ;; 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
|
841 ;; new-string) pair. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
842 (let ((return-string string) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
843 case-fold-search |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
844 (index 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
845 (len (length change-list)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
846 change-item) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
847 (while (< index len) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
848 (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
|
849 (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
|
850 (setq |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
851 return-string |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
852 (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
|
853 (elt change-item 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
854 (substring return-string (match-end 0))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
855 (setq index (1+ index))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
856 return-string)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
857 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
858 (defun bibtex-autokey-abbrev (string len) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
859 ;; 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
|
860 ;; 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
|
861 ;; 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
|
862 (let* ((string-length (length string)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
863 (len (if (numberp len) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
864 (min len string-length) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
865 len)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
866 (return-string (if (numberp len) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
867 (substring string 0 len))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
868 (index len) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
869 (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
|
870 (if (numberp len) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
871 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
872 (while (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
873 (< index string-length) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
874 (member (elt return-string |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
875 (1- (length return-string))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
876 vowels)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
877 (setq return-string (concat return-string |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
878 (substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
879 string index (1+ index))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
880 index (1+ index))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
881 return-string) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
882 string))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
883 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
884 (defun bibtex-generate-autokey () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
885 "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
|
886 The generation algorithm works as follows: |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
887 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
|
888 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
|
889 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
|
890 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
|
891 for further detail). |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
892 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
|
893 \"name\" field, determine the last name. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
894 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
|
895 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
|
896 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
|
897 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
|
898 any two. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
899 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
|
900 \"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
|
901 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
|
902 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
|
903 field of the reference according to |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
904 `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
|
905 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
|
906 8. Abbreviate the result to the string up to (but not including) the |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
907 first occurence of a regexp matched by the items of |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
908 `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
|
909 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
|
910 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
|
911 `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
|
912 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
|
913 `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
|
914 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
|
915 are used. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
916 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
|
917 `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
|
918 (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
|
919 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
|
920 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
|
921 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
|
922 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
|
923 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
|
924 between any two. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
925 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
|
926 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
|
927 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
|
928 `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
|
929 the title if both are non-empty." |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
930 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
931 (let* ((pnt (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
932 (min |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
933 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
934 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
935 (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
936 (max |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
937 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
938 (bibtex-end-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
939 (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
940 (namefield |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
941 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
942 (goto-char min) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
943 (if (or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
944 (search-forward-regexp "^[ \t]*author[ \t]*=" max t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
945 (search-forward-regexp "^[ \t]*editor[ \t]*=" max t)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
946 (let* (bibtex-help-message |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
947 (start (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
948 (bibtex-find-text t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
949 (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
950 (end (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
951 (bibtex-find-text nil) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
952 (point)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
953 (bibtex-autokey-change |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
954 (buffer-substring start end) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
955 bibtex-autokey-name-change-strings)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
956 ""))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
957 (namelist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
958 (mapcar |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
959 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
960 (lambda (fullname) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
961 (bibtex-autokey-abbrev |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
962 (if (string-match "," fullname) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
963 (substring fullname 0 (match-beginning 0)) |
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 (if (string-match " [^ ]*$" fullname) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
966 (substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
967 fullname (1+ (match-beginning 0))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
968 fullname))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
969 bibtex-autokey-name-length))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
970 ;; Gather all names into a list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
971 (let (names |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
972 (counter 0)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
973 (while (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
974 (not (equal namefield "")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
975 (or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
976 (not (numberp bibtex-autokey-names)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
977 (< counter bibtex-autokey-names))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
978 (if (string-match " and " namefield) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
979 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
980 (setq |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
981 names |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
982 (append names |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
983 (list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
984 (downcase |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
985 (substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
986 namefield 0 (match-beginning 0))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
987 namefield |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
988 (substring namefield (match-end 0)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
989 (setq names |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
990 (append names (list (downcase namefield))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
991 namefield "")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
992 (setq counter (1+ counter))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
993 names))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
994 (namepart (mapconcat (function (lambda (name) name)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
995 namelist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
996 bibtex-autokey-name-separator)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
997 (yearfield |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
998 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
999 (goto-char min) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1000 (if (search-forward-regexp |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1001 "^[ \t]*year[ \t]*=[ \t]*\\([0-9]*\\)" max t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1002 (buffer-substring (match-beginning 1) (match-end 1)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1003 ""))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1004 (yearpart |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1005 (if (equal yearfield "") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1006 "" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1007 (substring yearfield |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1008 (- (length yearfield) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1009 bibtex-autokey-year-length)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1010 (titlestring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1011 (let ((case-fold-search t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1012 (titlefield |
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 (goto-char min) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1015 (if (search-forward-regexp |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1016 "^[ \t]*title[ \t]*=" max t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1017 (let* (bibtex-help-message |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1018 (start (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1019 (bibtex-find-text t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1020 (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1021 (end (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1022 (bibtex-find-text nil) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1023 (point)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1024 (bibtex-autokey-change |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1025 (buffer-substring start end) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1026 bibtex-autokey-titleword-change-strings)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1027 ""))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1028 case-fold-search |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1029 (index 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1030 (numberofitems |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1031 (length bibtex-autokey-title-terminators))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1032 (while (< index numberofitems) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1033 (if (string-match |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1034 (elt bibtex-autokey-title-terminators index) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1035 titlefield) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1036 (setq titlefield |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1037 (substring titlefield 0 (match-beginning 0)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1038 (setq index (1+ index))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1039 titlefield)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1040 (titlelist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1041 (mapcar |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1042 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1043 (lambda (titleword) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1044 (let ((abbrev |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1045 (assoc-of-regexp |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1046 titleword bibtex-autokey-titleword-abbrevs))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1047 (if abbrev |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1048 (elt abbrev 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1049 (bibtex-autokey-abbrev |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1050 titleword |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1051 bibtex-autokey-titleword-length))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1052 ;; Gather all titlewords into a list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1053 (let (titlewords |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1054 titlewords-extra |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1055 case-fold-search |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1056 (counter 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1057 (first t)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1058 (while (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1059 (not (equal titlestring "")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1060 (or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1061 (not (numberp bibtex-autokey-titlewords)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1062 (< counter (+ |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1063 bibtex-autokey-titlewords |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1064 bibtex-autokey-titlewords-stretch)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1065 (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
|
1066 (let* ((end-match (match-end 0)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1067 (titleword |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1068 (downcase (substring titlestring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1069 (match-beginning 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1070 end-match)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1071 (if (or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1072 (not (numberp bibtex-autokey-titlewords)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1073 (< counter bibtex-autokey-titlewords)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1074 (if (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1075 first |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1076 (member-of-regexp |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1077 titleword |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1078 bibtex-autokey-titleword-first-ignore)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1079 (setq counter -1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1080 (setq titlewords |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1081 (append titlewords (list titleword)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1082 (setq |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1083 titlewords-extra |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1084 (append titlewords-extra (list titleword)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1085 (setq titlestring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1086 (substring titlestring end-match))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1087 (setq titlestring "")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1088 (setq first nil |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1089 counter (1+ counter))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1090 (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
|
1091 titlewords |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1092 (append titlewords titlewords-extra))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1093 (titlepart (mapconcat (function (lambda (name) name)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1094 titlelist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1095 bibtex-autokey-titleword-separator)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1096 (autokey |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1097 (concat |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1098 namepart |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1099 (if (not |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1100 (or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1101 (equal namepart "") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1102 (equal yearpart ""))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1103 bibtex-autokey-name-year-separator) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1104 yearpart |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1105 (if (not |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1106 (or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1107 (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1108 (equal namepart "") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1109 (equal yearpart "")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1110 (equal titlepart ""))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1111 bibtex-autokey-year-title-separator) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1112 titlepart))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1113 (goto-char pnt) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1114 autokey)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1115 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1116 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1117 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1118 ;;; INTERACTIVE FUNCTIONS: |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1119 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1120 ;;;###autoload |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1121 (defun bibtex-mode () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1122 "Major mode for editing BibTeX files. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1123 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1124 \\{bibtex-mode-map} |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1125 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1126 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
|
1127 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1128 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
|
1129 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
|
1130 \\[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
|
1131 \\[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
|
1132 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
|
1133 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
|
1134 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1135 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
|
1136 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
|
1137 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
|
1138 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
|
1139 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1140 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
|
1141 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
|
1142 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1143 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
|
1144 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1145 Functions: |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1146 bibtex-entry |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1147 bibtex-print-help-message |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1148 bibtex-beginning-of-entry |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1149 bibtex-end-of-entry |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1150 bibtex-ispell-abstract |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1151 bibtex-narrow-to-entry |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1152 bibtex-hide-entry-bodies |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1153 bibtex-sort-entries |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1154 bibtex-validate-buffer |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1155 bibtex-pop-previous |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1156 bibtex-pop-next |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1157 bibtex-complete-string |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1158 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1159 Variables: |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1160 bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1161 bibtex-field-right-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1162 bibtex-include-OPTcrossref |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1163 bibtex-include-OPTkey |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1164 bibtex-include-OPTannote |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1165 bibtex-mode-user-optional-fields |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1166 bibtex-clean-entry-zap-empty-opts |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1167 bibtex-sort-ignore-string-entries |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1168 bibtex-maintain-sorted-entries |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1169 bibtex-entry-field-alist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1170 bibtex-predefined-strings |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1171 bibtex-string-files |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1172 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1173 --------------------------------------------------------- |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1174 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
|
1175 non-nil." |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1176 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1177 (kill-all-local-variables) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1178 (use-local-map bibtex-mode-map) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1179 (setq major-mode 'bibtex-mode) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1180 (setq mode-name "BibTeX") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1181 (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
|
1182 (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
|
1183 (mapcar |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1184 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1185 (lambda (filename) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1186 ;; collect pathnames |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1187 (let* ((bib (getenv "BIBINPUTS")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1188 (path (if bib |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1189 bib |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1190 ".")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1191 (dirs |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1192 (mapcar |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1193 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1194 (lambda (dirname) ;; strips off trailing slashes |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1195 (let ((len (length dirname))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1196 (if (equal (elt dirname (1- len)) "/") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1197 (substring dirname 0 (1- (1- len))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1198 dirname)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1199 (let (actdirs) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1200 (while (string-match ":" path) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1201 (setq actdirs |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1202 (append actdirs |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1203 (list (substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1204 path 0 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1205 (1- (match-end 0))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1206 path (substring path (match-end 0)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1207 (append actdirs (list path))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1208 (filename (if (string-match "\.bib$" filename) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1209 filename |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1210 (concat filename ".bib"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1211 fullfilename |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1212 (item 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1213 (size (length dirs))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1214 ;; test filenames |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1215 (while (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1216 (< item size) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1217 (not (file-readable-p |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1218 (setq fullfilename |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1219 (concat (elt dirs item) "/" filename))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1220 (setq item (1+ item))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1221 (if (< item size) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1222 ;; file was found |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1223 (let ((curbuf (current-buffer)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1224 (bufname (make-temp-name "")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1225 (compl bibtex-completion-candidates)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1226 (create-file-buffer bufname) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1227 (set-buffer bufname) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1228 (insert-file-contents fullfilename) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1229 (goto-char (point-min)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1230 (while (search-forward-regexp bibtex-string nil t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1231 (setq |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1232 compl |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1233 (append |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1234 compl |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1235 (list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1236 (list (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1237 (match-beginning bibtex-name-in-string) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1238 (match-end bibtex-name-in-string))))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1239 (kill-buffer bufname) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1240 (set-buffer curbuf) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1241 (setq bibtex-completion-candidates compl)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1242 (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
|
1243 bibtex-string-files) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1244 (make-local-variable 'paragraph-start) |
10869
b8e678e5c4de
(bibtex-mode): Remove ^ from paragraph-start.
Boris Goldowsky <boris@gnu.org>
parents:
10353
diff
changeset
|
1245 (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
|
1246 (make-local-variable 'comment-start) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1247 (setq comment-start "%") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1248 (auto-fill-mode 1) ; nice alignments |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1249 (setq left-margin (+ bibtex-text-alignment 1)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1250 (run-hooks 'bibtex-mode-hook)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1251 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1252 (defun bibtex-entry (entry-type &optional required optional) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1253 (interactive (let* ((completion-ignore-case t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1254 (e-t (completing-read |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1255 "Entry Type: " |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1256 bibtex-entry-field-alist |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1257 nil t))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1258 (list e-t))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1259 (if (and (null required) (null optional)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1260 (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
|
1261 (r-n-o (elt e 1)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1262 (c-ref (elt e 2))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1263 (if (null e) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1264 (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
|
1265 (if (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1266 (member entry-type bibtex-include-OPTcrossref) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1267 c-ref) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1268 (setq required (elt c-ref 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1269 optional (elt c-ref 1)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1270 (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
|
1271 optional (elt r-n-o 1))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1272 (let* |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1273 (labels |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1274 label |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1275 (case-fold-search t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1276 (key |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1277 (if bibtex-maintain-sorted-entries |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1278 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1279 (save-excursion |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1280 (goto-char (point-min)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1281 (while |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1282 (re-search-forward |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1283 "\\(^@[a-z]+[ \t\n]*[{(][ \t\n]*\\([^ ,\t\n]+\\)[ \t\n]*,\\)\\|\\(^[ \t\n]*crossref[ \t\n]*=[ \t\n]*[{\"]\\([^ ,\t\n]*\\)[}\"],$\\)" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1284 nil t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1285 (if (match-beginning 2) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1286 (setq label (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1287 (match-beginning 2) (match-end 2))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1288 (setq label (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1289 (match-beginning 4) (match-end 4)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1290 (if (not (assoc label labels)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1291 (setq labels |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1292 (cons (list label) labels))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1293 (completing-read |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1294 (format "%s key: " entry-type) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1295 labels))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1296 (if key |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1297 (bibtex-find-entry-location key)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1298 (bibtex-move-outside-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1299 (insert "@" entry-type "{") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1300 (if key |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1301 (insert key)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1302 (save-excursion |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1303 (mapcar 'bibtex-make-field required) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1304 (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
|
1305 (bibtex-make-optional-field '("crossref"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1306 (if bibtex-include-OPTkey |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1307 (bibtex-make-optional-field '("key"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1308 (mapcar 'bibtex-make-optional-field optional) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1309 (mapcar 'bibtex-make-optional-field |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1310 bibtex-mode-user-optional-fields) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1311 (if bibtex-include-OPTannote |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1312 (bibtex-make-optional-field '("annote"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1313 (insert "\n}\n\n")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1314 (if key |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1315 (bibtex-next-field t)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1316 (run-hooks 'bibtex-add-entry-hook))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1317 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1318 (defun bibtex-print-help-message () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1319 "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
|
1320 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1321 (let* ((pnt (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1322 (field-name |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1323 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1324 (beginning-of-line) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1325 (condition-case errname |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1326 (bibtex-enclosing-regexp bibtex-field) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1327 (search-failed |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1328 (goto-char pnt) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1329 (error "Not on BibTeX field"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1330 (re-search-backward |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1331 "^[ \t]*\\([A-Za-z]+\\)[ \t\n]*=" nil t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1332 (let ((mb (match-beginning 1)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1333 (me (match-end 1))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1334 (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1335 (if (looking-at "^[ \t]*OPT") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1336 (+ 3 mb) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1337 mb) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1338 me)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1339 (reference-type |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1340 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1341 (re-search-backward |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1342 "^@\\([A-Za-z]+\\)[ \t\n]*[{(][^, \t\n]*[ \t\n]*," nil t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1343 (buffer-substring (match-beginning 1) (match-end 1)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1344 (entry-list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1345 (assoc-ignore-case reference-type |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1346 bibtex-entry-field-alist)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1347 (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
|
1348 (req-opt-list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1349 (if (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1350 (member reference-type bibtex-include-OPTcrossref) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1351 c-r-list) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1352 c-r-list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1353 (elt entry-list 1))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1354 (list-of-entries (append |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1355 (elt req-opt-list 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1356 (elt req-opt-list 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1357 bibtex-mode-user-optional-fields |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1358 (if (member |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1359 reference-type |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1360 bibtex-include-OPTcrossref) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1361 '(("crossref" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1362 "Label of the crossreferenced entry"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1363 (if bibtex-include-OPTannote |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1364 '(("annote" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1365 "Personal annotation (ignored)"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1366 (if bibtex-include-OPTkey |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1367 '(("key" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1368 "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
|
1369 (goto-char pnt) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1370 (if (assoc field-name list-of-entries) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1371 (message (elt (assoc field-name list-of-entries) 1)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1372 (message "NO COMMENT AVAILABLE")))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1373 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1374 (defun bibtex-make-field (e-t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1375 "Makes a 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
|
1376 (interactive "sBibTeX entry type: ") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1377 (let ((name (elt e-t 0))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1378 (insert ",\n") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1379 (indent-to-column bibtex-name-alignment) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1380 (insert name " = ") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1381 (indent-to-column bibtex-text-alignment) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1382 (insert bibtex-field-left-delimiter bibtex-field-right-delimiter))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1383 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1384 (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
|
1385 "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
|
1386 (interactive "sOptional BibTeX entry type: ") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1387 (if (consp e-t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1388 (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
|
1389 (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
|
1390 (bibtex-make-field e-t)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1391 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1392 (defun bibtex-beginning-of-entry () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1393 "Move to beginning of BibTeX entry. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1394 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
|
1395 beginning of the previous entry." |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1396 (interactive) |
11373
8381a25d021e
(bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents:
10869
diff
changeset
|
1397 (if (looking-at "^@") |
8381a25d021e
(bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents:
10869
diff
changeset
|
1398 (forward-char)) |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1399 (re-search-backward "^@" nil 'move)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1400 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1401 (defun bibtex-end-of-entry () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1402 "Move to end of BibTeX entry. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1403 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
|
1404 of the previous entry." |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1405 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1406 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1407 (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
|
1408 (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
|
1409 )) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1410 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1411 (defun bibtex-ispell-entry () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1412 "Spell whole BibTeX entry." |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1413 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1414 (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
|
1415 (progn (bibtex-end-of-entry) (point)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1416 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1417 (defun bibtex-ispell-abstract () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1418 "Spell abstract of BibTeX entry." |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1419 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1420 (let ((pnt (bibtex-end-of-entry))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1421 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1422 (if (null |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1423 (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
|
1424 (error "No abstract in entry."))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1425 (ispell-region (point) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1426 (save-excursion (forward-sexp) (point)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1427 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1428 (defun bibtex-narrow-to-entry () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1429 "Narrow buffer to current BibTeX entry." |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1430 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1431 (save-excursion |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1432 (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
|
1433 (progn (bibtex-end-of-entry) (point))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1434 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1435 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1436 (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
|
1437 "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
|
1438 With argument, show all text." |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1439 (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
|
1440 (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
|
1441 (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
|
1442 ;; 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
|
1443 ;; 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
|
1444 (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
|
1445 (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
|
1446 (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
|
1447 (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
|
1448 (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
|
1449 ;; (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
|
1450 (save-excursion |
dc1a3f9ea36d
(hide-bibtex-entry-bodies): Don't use replace-regexp.
Richard M. Stallman <rms@gnu.org>
parents:
4611
diff
changeset
|
1451 (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
|
1452 (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
|
1453 (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
|
1454 (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
|
1455 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1456 (defun bibtex-sort-entries () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1457 "Sort BibTeX entries alphabetically by key. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1458 Text before the first BibTeX entry, and following the last is not affected. |
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
|
1459 If bibtex-sort-ignore-string-entries is true, @string entries will be ignored. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1460 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1461 Bugs: |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1462 1. Text between the closing brace ending one BibTeX entry, and the @ starting |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3552
diff
changeset
|
1463 the next, is considered part of the PRECEDING entry. Perhaps it should be |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1464 part of the following entry." |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1465 (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1466 (save-restriction |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1467 (beginning-of-first-bibtex-entry) |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1468 (narrow-to-region |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1469 (point) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1470 (save-excursion |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1471 (goto-char (point-max)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1472 (bibtex-end-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1473 (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1474 (sort-subr |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1475 nil |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1476 ;; NEXTREC function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1477 'forward-line |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1478 ;; ENDREC function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1479 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1480 (lambda () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1481 (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1482 (re-search-forward "}\\s-*\n[\n \t]*@" nil 'move) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1483 (forward-char -2)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1484 ;; STARTKEY function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1485 (if bibtex-sort-ignore-string-entries |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1486 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1487 (lambda () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1488 (while |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1489 (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1490 (re-search-forward "^\\s-*\\([@a-zA-Z]*\\)\\s-*{\\s-*") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1491 (string-equal |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1492 "@string" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1493 (downcase |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1494 (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1495 (match-beginning 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1496 (match-end 1)))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1497 nil)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1498 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1499 (lambda () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1500 (re-search-forward "{\\s-*")))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1501 ;; ENDKEY function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1502 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1503 (lambda () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1504 (search-forward ",")))))) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1505 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1506 (defun bibtex-find-entry-location (entry-name &optional maybedup) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1507 "Looking for place to put the BibTeX entry named ENTRY-NAME. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1508 Searches from beginning of buffer. Buffer is assumed to be in sorted |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1509 order, without duplicates (see \\[bibtex-sort-entries]), if it is not, |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1510 an error will be signalled. If optional argument MAYBEDUP is non-nil |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1511 no error/warning messages about ENTRY-NAME being a (potential) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1512 duplicate of an existing entry will be emitted. This function returns |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1513 `nil' if ENTRY-NAME is a duplicate of an existing entry and t in all |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1514 other cases." |
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
|
1515 (interactive "sBibtex entry key: ") |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1516 (let ((nodup t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1517 (previous nil) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1518 point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1519 (beginning-of-first-bibtex-entry) |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1520 (or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1521 (catch 'done |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1522 (map-bibtex-entries |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1523 (function |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1524 (lambda (current) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1525 (cond ((string-equal entry-name current) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1526 (setq nodup nil) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1527 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1528 (if maybedup |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1529 (throw 'done t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1530 (error "Entry duplicates existing!"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1531 ((or (null previous) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1532 (string< previous current)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1533 (setq previous current |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1534 point (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1535 (if (string< entry-name current) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1536 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1537 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1538 ;; Many schemes append strings to |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1539 ;; existing entries to resolve them, |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1540 ;; so initial substring matches may |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1541 ;; indicate a duplicate entry. |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1542 (let ((idx |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1543 (string-match |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1544 (regexp-quote entry-name) current))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1545 (if (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1546 (integerp idx) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1547 (zerop idx) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1548 (not maybedup) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1549 (not (equal entry-name ""))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1550 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1551 (message |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1552 "Warning: Entry %s may be a duplicate of %s!" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1553 entry-name current) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1554 (ding t)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1555 (throw 'done t)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1556 ((string-equal previous current) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1557 (error "Duplicate here with previous!")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1558 (t (error "Entries out of order here!"))))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1559 (goto-char (point-max))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1560 nodup)) |
257 | 1561 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1562 (defun bibtex-validate-buffer () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1563 "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
|
1564 Any garbage (e.g. comments) before the first \"@\" is not tested (so |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1565 you can put comments here)." |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1566 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1567 (let ((pnt (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1568 (max (point-max))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1569 (goto-char (point-min)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1570 (while (< (re-search-forward "@\\|\\'") max) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1571 (forward-char -1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1572 (let ((p (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1573 (if (looking-at "@string") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1574 (forward-char) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1575 (if (not (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1576 (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
|
1577 (equal p (match-beginning 0)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1578 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1579 (goto-char p) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1580 (error "Bad entry begins here")))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1581 (bibtex-find-entry-location (make-string 10 255)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1582 ;; find duplicates |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1583 (goto-char pnt) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1584 (message "BibTeX buffer is syntactically correct"))) |
257 | 1585 |
1586 (defun bibtex-next-field (arg) | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1587 "Finds end of text of next BibTeX field; with arg, to its beginning." |
257 | 1588 (interactive "P") |
1589 (bibtex-inside-field) | |
1590 (let ((start (point))) | |
1591 (condition-case () | |
1592 (progn | |
1593 (bibtex-enclosing-field) | |
1594 (goto-char (match-end 0)) | |
1595 (forward-char 2)) | |
1596 (error | |
1597 (goto-char start) | |
1598 (end-of-line) | |
1599 (forward-char 1)))) | |
1600 (bibtex-find-text arg)) | |
1601 | |
1602 (defun bibtex-find-text (arg) | |
1603 "Go to end of text of current field; with arg, go to beginning." | |
1604 (interactive "P") | |
1605 (bibtex-inside-field) | |
1606 (bibtex-enclosing-field) | |
1607 (if arg | |
1608 (progn | |
1609 (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
|
1610 (if (looking-at "[{\"]") |
257 | 1611 (forward-char 1))) |
1612 (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
|
1613 (if (or |
8381a25d021e
(bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents:
10869
diff
changeset
|
1614 (= (preceding-char) ?}) |
8381a25d021e
(bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents:
10869
diff
changeset
|
1615 (= (preceding-char) ?\")) |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1616 (forward-char -1))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1617 (if bibtex-help-message |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1618 (bibtex-print-help-message))) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1619 |
257 | 1620 (defun bibtex-remove-OPT () |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1621 "Removes the 'OPT' starting optional arguments and goes to end of text." |
257 | 1622 (interactive) |
1623 (bibtex-inside-field) | |
1624 (bibtex-enclosing-field) | |
1625 (save-excursion | |
1626 (goto-char (match-beginning bibtex-name-in-field)) | |
1627 (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
|
1628 ;; 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
|
1629 (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
|
1630 (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
|
1631 (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
|
1632 (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
|
1633 (indent-to-column bibtex-text-alignment)))) |
257 | 1634 (bibtex-inside-field)) |
1635 | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1636 (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
|
1637 "Removes \"\" or {} around string." |
257 | 1638 (interactive) |
1639 (save-excursion | |
1640 (bibtex-inside-field) | |
1641 (bibtex-enclosing-field) | |
1642 (let ((start (match-beginning bibtex-text-in-field)) | |
1643 (stop (match-end bibtex-text-in-field))) | |
1644 (goto-char stop) | |
1645 (forward-char -1) | |
11373
8381a25d021e
(bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents:
10869
diff
changeset
|
1646 (if (looking-at "[}\"]") |
257 | 1647 (delete-char 1)) |
1648 (goto-char start) | |
11373
8381a25d021e
(bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents:
10869
diff
changeset
|
1649 (if (looking-at "[{\"]") |
257 | 1650 (delete-char 1))))) |
1651 | |
1652 (defun bibtex-kill-optional-field () | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1653 "Kill the entire enclosing optional BibTeX field." |
257 | 1654 (interactive) |
1655 (bibtex-inside-field) | |
1656 (bibtex-enclosing-field) | |
1657 (goto-char (match-beginning bibtex-name-in-field)) | |
1658 (let ((the-end (match-end 0)) | |
1659 (the-beginning (match-beginning 0))) | |
1660 (if (looking-at "OPT") | |
1661 (progn | |
1662 (goto-char the-end) | |
1663 (skip-chars-forward " \t\n,") | |
1664 (kill-region the-beginning the-end)) | |
1665 (error "Mandatory fields can't be killed")))) | |
1666 | |
1667 (defun bibtex-empty-field () | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1668 "Delete the text part of the current field, replace with empty text." |
257 | 1669 (interactive) |
1670 (bibtex-inside-field) | |
1671 (bibtex-enclosing-field) | |
1672 (goto-char (match-beginning bibtex-text-in-field)) | |
1673 (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
|
1674 (insert (concat bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1675 bibtex-field-right-delimiter)) |
257 | 1676 (bibtex-find-text t)) |
1677 | |
1678 (defun bibtex-pop-previous (arg) | |
1679 "Replace text of current field with the text of similar field in previous entry. | |
1680 With arg, go up ARG entries. Repeated, goes up so many times. May be | |
1681 intermixed with \\[bibtex-pop-next] (bibtex-pop-next)." | |
1682 (interactive "p") | |
1683 (bibtex-inside-field) | |
1684 (save-excursion | |
1685 ; parse current field | |
1686 (bibtex-enclosing-field) | |
1687 (let ((start-old-text (match-beginning bibtex-text-in-field)) | |
1688 (stop-old-text (match-end bibtex-text-in-field)) | |
1689 (start-name (match-beginning bibtex-name-in-field)) | |
1690 (stop-name (match-end bibtex-name-in-field)) | |
1691 (new-text)) | |
1692 (goto-char start-name) | |
1693 ; construct regexp for previous field with same name as this one | |
1694 (let ((matching-entry | |
1695 (bibtex-cfield | |
1696 (buffer-substring (if (looking-at "OPT") | |
1697 (+ (point) (length "OPT")) | |
1698 (point)) | |
1699 stop-name) | |
1700 bibtex-field-text))) | |
1701 ; if executed several times in a row, start each search where the | |
1702 ; last one finished | |
1703 (cond ((or (eq last-command 'bibtex-pop-previous) | |
1704 (eq last-command 'bibtex-pop-next)) | |
1705 t | |
1706 ) | |
1707 (t | |
1708 (bibtex-enclosing-reference) | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1709 (setq bibtex-pop-previous-search-point (point)) |
257 | 1710 (setq bibtex-pop-next-search-point (match-end 0)))) |
1711 (goto-char bibtex-pop-previous-search-point) | |
1712 ; Now search for arg'th previous similar field | |
1713 (cond | |
1714 ((re-search-backward matching-entry (point-min) t arg) | |
1715 (setq new-text | |
1716 (buffer-substring (match-beginning bibtex-text-in-cfield) | |
1717 (match-end bibtex-text-in-cfield))) | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1718 ;; change delimiters, if any changes needed |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1719 (cond |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1720 ((and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1721 (equal bibtex-field-left-delimiter "{") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1722 (eq (aref new-text 0) ?\") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1723 (eq (aref new-text (1- (length new-text))) ?\")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1724 (aset new-text 0 ?\{) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1725 (aset new-text (1- (length new-text)) ?\})) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1726 ((and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1727 (equal bibtex-field-left-delimiter "\"") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1728 (eq (aref new-text 0) ?\{) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1729 (eq (aref new-text (1- (length new-text))) ?\})) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1730 (aset new-text 0 ?\") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1731 (aset new-text (1- (length new-text)) ?\")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1732 ((or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1733 (not (eq (aref new-text 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1734 (aref bibtex-field-left-delimiter 0))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1735 (not (eq (aref new-text (1- (length new-text))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1736 (aref bibtex-field-right-delimiter 0)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1737 (setq new-text (concat bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1738 new-text |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1739 bibtex-field-right-delimiter)))) |
257 | 1740 ; Found a matching field. Remember boundaries. |
1741 (setq bibtex-pop-next-search-point (match-end 0)) | |
1742 (setq bibtex-pop-previous-search-point (match-beginning 0)) | |
1743 (bibtex-flash-head) | |
1744 ; Go back to where we started, delete old text, and pop new. | |
1745 (goto-char stop-old-text) | |
1746 (delete-region start-old-text stop-old-text) | |
1747 (insert new-text)) | |
1748 (t ; search failed | |
1749 (error "No previous matching BibTeX field.")))))) | |
1750 (setq this-command 'bibtex-pop-previous)) | |
1751 | |
1752 (defun bibtex-pop-next (arg) | |
1753 "Replace text of current field with the text of similar field in next entry. | |
1754 With arg, go up ARG entries. Repeated, goes up so many times. May be | |
1755 intermixed with \\[bibtex-pop-previous] (bibtex-pop-previous)." | |
1756 (interactive "p") | |
1757 (bibtex-inside-field) | |
1758 (save-excursion | |
1759 ; parse current field | |
1760 (bibtex-enclosing-field) | |
1761 (let ((start-old-text (match-beginning bibtex-text-in-field)) | |
1762 (stop-old-text (match-end bibtex-text-in-field)) | |
1763 (start-name (match-beginning bibtex-name-in-field)) | |
1764 (stop-name (match-end bibtex-name-in-field)) | |
1765 (new-text)) | |
1766 (goto-char start-name) | |
1767 ; construct regexp for next field with same name as this one, | |
1768 ; ignoring possible OPT's | |
1769 (let ((matching-entry | |
1770 (bibtex-cfield | |
1771 (buffer-substring (if (looking-at "OPT") | |
1772 (+ (point) (length "OPT")) | |
1773 (point)) | |
1774 stop-name) | |
1775 bibtex-field-text))) | |
1776 | |
1777 ; if executed several times in a row, start each search where the | |
1778 ; last one finished | |
1779 (cond ((or (eq last-command 'bibtex-pop-next) | |
1780 (eq last-command 'bibtex-pop-previous)) | |
1781 t | |
1782 ) | |
1783 (t | |
1784 (bibtex-enclosing-reference) | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1785 (setq bibtex-pop-previous-search-point (point)) |
257 | 1786 (setq bibtex-pop-next-search-point (match-end 0)))) |
1787 (goto-char bibtex-pop-next-search-point) | |
1788 | |
1789 ; Now search for arg'th next similar field | |
1790 (cond | |
1791 ((re-search-forward matching-entry (point-max) t arg) | |
1792 (setq new-text | |
1793 (buffer-substring (match-beginning bibtex-text-in-cfield) | |
1794 (match-end bibtex-text-in-cfield))) | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1795 ;; change delimiters, if any changes needed |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1796 (cond |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1797 ((and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1798 (equal bibtex-field-left-delimiter "{") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1799 (eq (aref new-text 0) ?\") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1800 (eq (aref new-text (1- (length new-text))) ?\")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1801 (aset new-text 0 ?\{) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1802 (aset new-text (1- (length new-text)) ?\})) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1803 ((and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1804 (equal bibtex-field-left-delimiter "\"") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1805 (eq (aref new-text 0) ?\{) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1806 (eq (aref new-text (1- (length new-text))) ?\})) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1807 (aset new-text 0 ?\") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1808 (aset new-text (1- (length new-text)) ?\")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1809 ((or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1810 (not (eq (aref new-text 0) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1811 (aref bibtex-field-left-delimiter 0))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1812 (not (eq (aref new-text (1- (length new-text))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1813 (aref bibtex-field-right-delimiter 0)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1814 (setq new-text (concat bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1815 new-text |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1816 bibtex-field-right-delimiter)))) |
257 | 1817 ; Found a matching field. Remember boundaries. |
1818 (setq bibtex-pop-next-search-point (match-end 0)) | |
1819 (setq bibtex-pop-previous-search-point (match-beginning 0)) | |
1820 (bibtex-flash-head) | |
1821 ; Go back to where we started, delete old text, and pop new. | |
1822 (goto-char stop-old-text) | |
1823 (delete-region start-old-text stop-old-text) | |
1824 (insert new-text)) | |
1825 (t ; search failed | |
1826 (error "No next matching BibTeX field.")))))) | |
1827 (setq this-command 'bibtex-pop-next)) | |
1828 | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1829 (defun bibtex-clean-entry (&optional arg) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1830 "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
|
1831 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
|
1832 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
|
1833 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
|
1834 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
|
1835 given, calculate a new entry label." |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1836 (interactive "P") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1837 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1838 (let ((start (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1839 crossref-there) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1840 (save-restriction |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1841 (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
|
1842 (while (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1843 (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
|
1844 (not crossref-there)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1845 ;; determine if reference has crossref entry |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1846 (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
|
1847 (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
|
1848 (goto-char begin-name) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1849 (if (looking-at "\\(OPTcrossref\\)\\|\\(crossref\\)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1850 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1851 (goto-char begin-text) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1852 (if (not (looking-at |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1853 (concat |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1854 bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1855 bibtex-field-right-delimiter))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1856 (setq crossref-there t)))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1857 (bibtex-enclosing-reference) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1858 (re-search-forward bibtex-reference-type) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1859 (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
|
1860 (end-type (match-end 0))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1861 (goto-char start) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1862 (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
|
1863 (let ((begin-field (match-beginning 0)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1864 (end-field (match-end 0)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1865 (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
|
1866 (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
|
1867 (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
|
1868 (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
|
1869 ) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1870 (goto-char begin-name) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1871 (cond ((and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1872 (looking-at "OPT") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1873 bibtex-clean-entry-zap-empty-opts) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1874 (goto-char begin-text) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1875 (if (looking-at |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1876 (concat |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1877 bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1878 bibtex-field-right-delimiter)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1879 ;; 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
|
1880 ;; (missing crossref handled) or complain |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1881 (if (and |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1882 (not crossref-there) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1883 (assoc |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1884 (downcase |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1885 (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1886 (+ (length "OPT") begin-name) end-name)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1887 (car (car (cdr |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1888 (assoc-ignore-case |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1889 (buffer-substring begin-type end-type) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1890 bibtex-entry-field-alist)))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1891 ;; field is not really optional |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1892 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1893 (goto-char begin-name) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1894 (delete-char (length "OPT")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1895 ;; make field non-OPT |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1896 (search-forward "=") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1897 (delete-horizontal-space) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1898 (indent-to-column bibtex-text-alignment) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1899 (forward-char) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1900 ;; 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
|
1901 (error "Mandatory field ``%s'' is empty" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1902 (buffer-substring begin-name |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1903 end-name))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1904 ;; field is optional |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1905 (delete-region begin-field end-field)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1906 ;; otherwise: not empty, delete "OPT" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1907 (goto-char begin-name) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1908 (delete-char (length "OPT")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1909 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1910 ;; fixup alignment. [alarson:19920309.2047CST] |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1911 (search-forward "=") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1912 (delete-horizontal-space) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1913 (indent-to-column bibtex-text-alignment)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1914 (goto-char begin-field) ; 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
|
1915 )) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1916 (t |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1917 (goto-char begin-text) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1918 (cond ((looking-at (concat |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1919 bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1920 "[0-9]+" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1921 bibtex-field-right-delimiter)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1922 ;; if numerical, |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1923 (goto-char end-text) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1924 (delete-char -1) ; delete enclosing double-quotes |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1925 (goto-char begin-text) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1926 (delete-char 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1927 (goto-char end-field) ; go to end for next search |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1928 (forward-char -2) ; to compensate for the 2 quotes deleted |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1929 ) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1930 ((looking-at (concat |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1931 bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1932 bibtex-field-right-delimiter)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1933 ;; if empty quotes, complain |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1934 (forward-char 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1935 (if (not (or (equal (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1936 begin-name |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1937 (+ begin-name 3)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1938 "OPT") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1939 (equal (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1940 begin-name |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1941 (+ begin-name 3)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1942 "opt"))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1943 (error "Mandatory field ``%s'' is empty" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1944 (buffer-substring begin-name end-name)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1945 (t |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1946 (goto-char end-field))))))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1947 (goto-char start) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1948 (bibtex-end-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1949 ;; sct@dcs.edinburgh.ac.uk |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1950 (save-excursion |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1951 (forward-line -1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1952 (end-of-line) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1953 (if (eq (preceding-char) ?,) |
11373
8381a25d021e
(bibtex-find-text, bibtex-remove-double-quotes-or-braces):
Richard M. Stallman <rms@gnu.org>
parents:
10869
diff
changeset
|
1954 (backward-delete-char 1)))) |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1955 (let* ((eob (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1956 (bibtex-end-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1957 (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1958 (key (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1959 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1960 (if (search-forward-regexp |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1961 bibtex-reference-head eob t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1962 (buffer-substring |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1963 (match-beginning bibtex-key-in-head) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1964 (match-end bibtex-key-in-head)))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1965 (if (or |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1966 arg |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1967 (not key)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1968 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1969 (let ((autokey |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1970 (if bibtex-autokey-edit-before-use |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1971 (read-from-minibuffer "Key to use: " |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1972 (bibtex-generate-autokey)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1973 (bibtex-generate-autokey)))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1974 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1975 (search-forward-regexp "^@[A-Za-z]+[ \t]*[({]\\([^,]*\\)") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1976 (delete-region (match-beginning 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1977 (match-end 1)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1978 (insert autokey) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1979 (let ((start (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1980 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1981 (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1982 (end (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1983 (bibtex-end-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1984 (search-forward-regexp "^@" nil 'move) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1985 (beginning-of-line) |
10353
363bf89a3081
(bibtex-clean-entry): Killing text while editing
Richard M. Stallman <rms@gnu.org>
parents:
10219
diff
changeset
|
1986 (point))) |
363bf89a3081
(bibtex-clean-entry): Killing text while editing
Richard M. Stallman <rms@gnu.org>
parents:
10219
diff
changeset
|
1987 last-command) |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1988 (kill-region start end) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1989 (let ((success (bibtex-find-entry-location autokey t))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1990 (yank) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1991 (bibtex-beginning-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1992 (search-forward-regexp bibtex-reference-head) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1993 (setq kill-ring (cdr kill-ring)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1994 (if (not success) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1995 (error |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1996 "Duplicated key (change manually and enter `bibtex-sort-entries')"))))))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1997 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1998 (defun bibtex-complete-string () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
1999 "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
|
2000 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
|
2001 (interactive "*") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2002 (let* ((end (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2003 (beg (save-excursion |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2004 (re-search-backward "[ \t{\"]") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2005 (forward-char 1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2006 (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2007 (part-of-word (buffer-substring beg end)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2008 (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
|
2009 (case-fold-search t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2010 (completion (save-excursion |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2011 (progn |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2012 (while (re-search-backward |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2013 "@string[ \t\n]*{" (point-min) t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2014 (goto-char (match-end 0)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2015 (let ((pnt (point)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2016 (strt (match-beginning 0))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2017 (re-search-forward "[ \t\n]*=" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2018 (point-max) t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2019 (goto-char (match-beginning 0)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2020 (setq string-list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2021 (cons |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2022 (list (buffer-substring pnt (point))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2023 string-list)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2024 (goto-char strt))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2025 (setq string-list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2026 (sort string-list |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2027 (lambda(x y) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2028 (string-lessp |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2029 (car x) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2030 (car y))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2031 (try-completion part-of-word string-list))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2032 (cond ((eq completion t) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2033 (bibtex-remove-double-quotes-or-braces)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2034 ((null completion) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2035 (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
|
2036 ((not (string= part-of-word completion)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2037 (delete-region beg end) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2038 (insert completion) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2039 (if (assoc completion string-list) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2040 (bibtex-remove-double-quotes-or-braces))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2041 (t |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2042 (message "Making completion list...") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2043 (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
|
2044 (with-output-to-temp-buffer "*Completions*" |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2045 (display-completion-list list))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2046 (message "Making completion list...done"))))) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2047 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2048 (defun bibtex-Article () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2049 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2050 (bibtex-entry "Article")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2051 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2052 (defun bibtex-Book () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2053 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2054 (bibtex-entry "Book")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2055 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2056 (defun bibtex-Booklet () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2057 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2058 (bibtex-entry "Booklet")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2059 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2060 (defun bibtex-InBook () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2061 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2062 (bibtex-entry "InBook")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2063 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2064 (defun bibtex-InCollection () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2065 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2066 (bibtex-entry "InCollection")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2067 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2068 (defun bibtex-InProceedings () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2069 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2070 (bibtex-entry "InProceedings")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2071 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2072 (defun bibtex-Manual () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2073 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2074 (bibtex-entry "Manual")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2075 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2076 (defun bibtex-MastersThesis () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2077 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2078 (bibtex-entry "MastersThesis")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2079 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2080 (defun bibtex-Misc () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2081 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2082 (bibtex-entry "Misc")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2083 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2084 (defun bibtex-PhdThesis () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2085 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2086 (bibtex-entry "PhdThesis")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2087 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2088 (defun bibtex-Proceedings () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2089 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2090 (bibtex-entry "Proceedings")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2091 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2092 (defun bibtex-TechReport () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2093 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2094 (bibtex-entry "TechReport")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2095 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2096 (defun bibtex-Unpublished () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2097 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2098 (bibtex-entry "Unpublished")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2099 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2100 (defun bibtex-string () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2101 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2102 (bibtex-move-outside-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2103 (insert |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2104 (concat |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2105 "@string{ = " |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2106 bibtex-field-left-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2107 bibtex-field-right-delimiter |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2108 "}\n")) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2109 (forward-line -1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2110 (forward-char 8)) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2111 |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2112 (defun bibtex-preamble () |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2113 (interactive) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2114 (bibtex-move-outside-of-entry) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2115 (insert "@Preamble{}\n") |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2116 (forward-line -1) |
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2117 (forward-char 10)) |
257 | 2118 |
2119 | |
2120 | |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2121 ;;; MAKE BIBTEX a FEATURE |
257 | 2122 |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2123 (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
|
2124 |
257 | 2125 |
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
|
2126 ;;; bibtex.el ends here |
10219
d97313bb6f39
(bibtex-string, bibtex-preamble): Use forward-line.
Richard M. Stallman <rms@gnu.org>
parents:
10106
diff
changeset
|
2127 |