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