Mercurial > emacs
annotate lisp/textmodes/bibtex.el @ 7850:b6f3dd2511bc
(iso-translate-conventions): Get rid of interactive spec.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 11 Jun 1994 18:17:00 +0000 |
parents | 892098bdaa24 |
children | 55a80566d955 |
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 |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
5 ;; Author: Bengt Martensson <ubrinf!mond!bengt> |
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
6 ;; Mark Shapiro <shapiro@corto.inria.fr> |
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
7 ;; Mike Newton <newton@gumby.cs.caltech.edu> |
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
8 ;; Aaron Larson <alarson@src.honeywell.com> |
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
|
9 ;; Version: 1.3.1 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
10 ;; Maintainer:Aaron Larson <alarson@src.honeywell.com> |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
11 ;; Adapted-By: ESR |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
12 ;; Keywords: tex, bib |
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
13 |
257 | 14 ;; This file is part of GNU Emacs. |
15 | |
16 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
17 ;; it under the terms of the GNU General Public License as published by | |
1851 | 18 ;; the Free Software Foundation; either version 2, or (at your option) |
257 | 19 ;; any later version. |
20 | |
21 ;; GNU Emacs is distributed in the hope that it will be useful, | |
22 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
23 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
24 ;; GNU General Public License for more details. | |
25 | |
26 ;; You should have received a copy of the GNU General Public License | |
27 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
28 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
29 | |
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
|
30 ;;; TODO distribute texinfo file. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
31 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
32 ;;; LCD Archive 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
|
33 ;;; bibtex-mode|Bengt Martensson, Marc Shapiro, Aaron Larson| |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
34 ;;; alarson@src.honeywell.com| |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
35 ;;; Support for maintaining BibTeX format bibliography databases| |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
36 ;;; 93-03-29|version 1.3|~/modes/bibtex-mode.el.Z| |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
37 |
2307
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1851
diff
changeset
|
38 ;;; Commentary: |
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1851
diff
changeset
|
39 |
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
|
40 ;;; BUGS: |
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 ;;; 1. using regular expressions to match the entire bibtex entry dies |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
42 ;;; on long bibtex entires (e.g. those containing abstracts) since |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
43 ;;; the length of regular expression matches is fairly limited. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
44 ;;; 2. When inserting a string (with \C-C\C-E\s) hitting a TAB results |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
45 ;;; in the error message "Can't find enclosing Bibtex field" instead |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
46 ;;; of moving to the empty string. [reported by gernot@cs.unsw.oz.au] |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
47 ;;; 3. Function string-equalp should be in a library file, not in this |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
48 ;;; file. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
49 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
50 ;;; (current keeper: alarson@src.honeywell.com |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
51 ;;; previous: shapiro@corto.inria.fr) |
2307
10e417efb12a
Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1851
diff
changeset
|
52 |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
807
diff
changeset
|
53 ;;; Change Log: |
561 | 54 |
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
|
55 ;; Mon Mar 29 14:06:06 1993 Aaron Larson (alarson at gendibal) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
56 ;; |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
57 ;; * bibtex.el: V1.3 released Mar 30, 1993 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
58 ;; (bibtex-field-name): Fix to match definition if latex 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
|
59 ;; specifically letters, digits, and punctuation other than comma. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
60 ;; Underscore is retained for historical reasons. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
61 ;; (bibtex-make-field): Fix to work around bug in Lucid prin1-to-string |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
62 ;; function as reported by Martin Sjolin <marsj@ida.liu.se>. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
63 ;; (bibtex-entry): minor code cleanup. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
64 ;; (bibtex-mode-map): Remove key binding (C-c n) for |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
65 ;; narrow-to-bibtex-entry, previous binding violated emacs policy of |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
66 ;; reserving C-c followed by a letter for user customization. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
67 ;; revise modification history to better conform to FSF changelog |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
68 ;; standards. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
69 ;; (bibtex-refile-entry): Removed. Would need disclaimer papers to |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
70 ;; incorporate it into official sources, and unable to contact author. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
71 ;; Fix minor "syntax" errors in documentation strings and such found |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
72 ;; by new byte compiler. Funs bibtex-mode, bibtex-remove-double-quotes |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
73 ;; |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
74 ;; |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
75 ;; Fri Jan 15 14:06:06 1993 Aaron Larson (alarson at gendibal) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
76 ;; |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
77 ;; * bibtex.el: V1.2 released Feb 15 1993 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
78 ;; (find-bibtex-entry-location bibtex-make-field): Fixed placement of |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
79 ;; "interactive specification". [Bug report from |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
80 ;; mernst@theory.lcs.mit.edu] |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
81 ;; Fixed problem where bibtex-entry would fail if user typed 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
|
82 ;; name in wrong case. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
83 ;; (bibtex-inside-field) Position the cursor _before_ the last comma |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
84 ;; on a line (the comma is not necessarily "inside" the field); this |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
85 ;; does not seem to break any existing code. ref 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
|
86 ;; (bibtex-enclosing-field, bibtex-enclosing-reference): leave |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
87 ;; point unmoved if no enclosing field/reference is found. As a |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
88 ;; result of changes (3) and (4) bibtex-next-field works properly, |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
89 ;; even when called from the entry key position. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
90 ;; (bibtex-remove-OPT): realign the '=' after removing the '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
|
91 ;; (bibtex-clean-entry): always remove any trailing comma from 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
|
92 ;; end of a bibtex entry (these commas get stripped automatically when |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
93 ;; optional fields are killed by bibtex-kill-optional-field, but can be |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
94 ;; left if optional fields are removed by other means). |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
95 ;; (bibtex-x-help) Replace tab with spaces in X menu as noted by |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
96 ;; khera@cs.duke.edu |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
97 ;; (bibtex-refile-entry): Added (from brannon@jove.cs.caltech.edu) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
98 ;; (bibtex-sort-ignore-string-entries sort-bibtex-entries, |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
99 ;; map-bibtex-entries): Added variable as requested by |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
100 ;; gernot@cs.unsw.oz.au, required changes to funs. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
101 ;; (bibtex-current-entry-label): Added at request of |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
102 ;; yasuro@maekawa.is.uec.ac.jp |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
103 ;; (bibtex-DEAthesis:) Deleted along with corresponding entry from |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
104 ;; bibtex-x-help per shapiro@corto.inria.fr |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
105 ;; Moved narrow-to-bibtex-entry from C-c C-n to C-c n (the 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
|
106 ;; binding was in conflict with the binding for 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
|
107 ;; bug report from [shapiro@corto.inria.fr] |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
108 ;; |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
109 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
110 ;;; |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
111 ;;; alarson@src.honeywell.com 92-Feb-13 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
112 ;;; 1. Made bibtex-entry user callable, now prompts for entry type (e.g. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
113 ;;; Article), with completion, and bound it to a key. This is now my |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
114 ;;; preferred way to add most entries. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
115 ;;; 2. Made fields of a bibtex entry derived from the alist 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
|
116 ;;; field-alist. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
117 ;;; 3. Fixed handling of escaped double quotes, e.g. "Schr{\"o}dinger". |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
118 ;;; 4. Fixed bug where unhiding bibtex entries moved point. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
119 ;;; 5. Made "field name" specs permit (name . value) for defaulting. E.g. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
120 ;;; (setq bibtex-mode-user-optional-fields '(("library" . "alarson"))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
121 ;;; will generate the 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
|
122 ;;; library = "alarson", |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
123 ;;; 6. Added binding for narrow-to-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
|
124 ;;; 7. Adding a bibtex entry now runs hook: bibtex-add-entry-hook |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
125 ;;; 8. Made bibtex-clean-entry fixup text alignment, and eliminated 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
|
126 ;;; dependency on bibtex-enclosing-reference which has a problem with |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
127 ;;; long entries (e.g. those containing abstracts). |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
128 ;;; |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
129 ;;; alarson@src.honeywell.com 92-Jan-31 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
130 ;;; Added support for: ispell, beginning/end of entry movement, a simple |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
131 ;;; outline like mode (hide the bodies of bibtex entries), support for |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
132 ;;; sorting bibtex entries, and maintaining them in sorted order, and |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
133 ;;; simple buffer validation. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
134 ;;; User visible functions added: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
135 ;;; ispell-{abstract,bibtex-entry}, {beginning,end}-of-bibtex-entry |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
136 ;;; hide-bibtex-entry-bodies, sort-bibtex-entries, validate-bibtex- |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
137 ;;; buffer, find-bibtex-duplicates |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
138 ;;; user visible variables added: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
139 ;;; bibtex-maintain-sorted-entries |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
140 ;;; new local keybindings: |
3618
58f653fa4e5b
(bibtex-mode-map): Use tex-insert-quote, not TeX-...
Richard M. Stallman <rms@gnu.org>
parents:
3591
diff
changeset
|
141 ;;; " tex-insert-quote |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
142 ;;; C-c$ ispell-bibtex-entry |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
143 ;;; M-C-a beginning-of-bibtex-entry |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
144 ;;; M-C-e end-of-bibtex-entry |
257 | 145 ;;; Mike Newton (newton@gumby.cs.caltech.edu) 90.11.17 |
146 ;;; * Handle items like | |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3552
diff
changeset
|
147 ;;; title = poft # "Fifth Tri-quarterly" # random-conf, |
257 | 148 ;;; and title = {This title is inside curlies} |
149 ;;; * added user settable, always present, optional fields | |
150 ;;; * fixed 'bibtex-find-it's doc string's location | |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3552
diff
changeset
|
151 ;;; * bibtex-field-text made more general (it wouldn't handle the # construct) |
257 | 152 ;;; and it now handles a small subset of the {} cases |
153 | |
154 ;;; Bengt Martensson, March 6 | |
155 ;;; Adapted to Bibtex 0.99 by updating the optional fields according | |
156 ;;; to the document BibTeXing, Oren Patashnik, dated January 31, 1988. | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
157 ;;; Updated documentation strings accordingly. Added (provide 'bibtex). |
257 | 158 ;;; If bibtex-include-OPT-crossref is non-nil, every entry will have |
159 ;;; an OPTcrossref field, analogously for bibtex-include-OPTkey and | |
160 ;;; bibtex-include-OPTannote. Added bibtex-preamble, bound to ^C^EP, | |
161 ;;; and also found in X- and sun-menus. Cleaned up the sun-menu | |
162 ;;; stuff, and made it more uniform with the X-menu stuff. Marc: I | |
163 ;;; strongly suspect that I broke your parsing... (Or, more | |
164 ;;; correctly, BibTeX 0.99 broke it.) | |
165 ;;; Added bibtex-clean-entry-zap-empty-opts, defvar'd to t. If it | |
166 ;;; is nil, bibtex-clean-entry will leave empty optional fields alone. | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
167 |
257 | 168 ;;; Marc Shapiro 1-feb-89: integrated changes by Bengt Martensson 88-05-06: |
169 ;;; Added Sun menu support. Locally bound to right mouse button in | |
170 ;;; bibtex-mode. Emacs 18.49 allows local mouse bindings!! | |
171 ;;; Commented out DEAthesis. | |
172 | |
173 ;;; Marc Shapiro 6-oct-88 | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
174 ;;; * skip-whitespace replaced by skip-chars-forward |
257 | 175 ;;; * use indent-to-column instead of inserting tabs (changes to |
176 ;;; bibtex-entry, bibtex-make-entry, bibtex-make-OPT-entry, renamed to | |
177 ;;; bibtex-make-optional-entry) | |
178 ;;; * C-c C-k deletes the current OPT entry entirely | |
179 ;;; * C-c C-d replaces text of field with "" | |
180 ;;; * renamed bibtex-find-it to bibtex-find-text. With arg, now goes to | |
181 ;;; start of text. Fixed bugs in it. | |
182 | |
183 ;;; Marc Shapiro 23-sep-88 | |
184 ;;; * bibtex-clean-entry moves past end of entry. | |
185 ;;; * bibtex-clean-entry signals mandatory fields left empty. | |
186 | |
187 ;;; Marc Shapiro 18-jul-88 | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
188 ;;; * Fixed bug in bibtex-flash-entry |
257 | 189 ;;; * Moved all the entry type keystrokes to "C-c C-e something" (instead of |
190 ;;; "C-c something" previously) to make room for more. C-c C-e is | |
191 ;;; supposed to stand for "entry" [idea taken from mail-mode]. Moved | |
192 ;;; bibtex-pop-previous to C-c C-p and bibtex-pop-next to C-c C-n. | |
193 ;;; * removed binding for "\e[25~" | |
194 ;;; * replaced bibtex-clean-optionals by bibtex-clean-entry, bound to | |
195 ;;; C-c C-c | |
196 | |
197 ;;; Marc Shapiro 13-jul-88 [based on ideas by Sacha Krakowiak of IMAG] | |
198 ;;; * bibtex-pop-previous replaces current field with value of | |
199 ;;; similar field in previous entry. May be called n times in a row | |
200 ;;; (or with arg n) to pop similar field of n'th previous entry. | |
201 ;;; There is also a bibtex-pop-next to get similar field of next | |
202 ;;; entry. | |
203 ;;; * C-c C-k now kills all empty optional fields of current entry, and | |
204 ;;; removes "OPT" for those optional fields which have text. | |
205 | |
206 ;;; Marc Shapiro 14-dec-87 | |
207 ;;; Cosmetic fixes. Fixed small bug in bibtex-move-outside-of-entry. | |
208 ;;; Skip Montanaro <steinmetz!sprite!montanaro> 7-dec-87, Shapiro 10-dec-87 | |
209 ;;; before inserting an entry, make sure we are outside of a bib entry | |
210 ;;; Marc Shapiro 3-nov-87 | |
211 ;;; addition for France: DEAthesis | |
212 ;;; Marc Shapiro 19-oct-1987 | |
213 ;;; add X window menu option; bug fixes. TAB, LFD, C-c " and C-c C-o now | |
214 ;;; behave consistently; deletion never occurs blindly. | |
215 ;;; Marc Shapiro <shapiro@inria.inria.fr> 15-oct-1986 | |
216 ;;; align long lines nicely; C-c C-o checks for the "OPT" string; | |
217 ;;; TAB goes to the end of the string; use lower case; use | |
218 ;;; run-hooks | |
219 | |
220 ;;; Bengt Martensson <ubrinf!mond!bengt> 87-06-28 | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
221 ;;; Bengt Martensson <bengt@mathematik.uni-Bremen.de> 87-06-28 |
257 | 222 ;;; Original version |
223 | |
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
|
224 ;;; Code: |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
225 |
257 | 226 ;;; NOTE by Marc Shapiro, 14-dec-87: |
227 ;;; (bibtex-x-environment) binds an X menu for bibtex mode to x-button-c-right. | |
228 ;;; Trouble is, in Emacs 18.44 you can't have a mode-specific mouse binding, | |
229 ;;; so it will remain active in all windows. Yuck! | |
230 | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
231 (provide 'bibtex) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
232 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
233 ;;; these guys typically don't have autoloads...[alarson:19920131.1548CST] |
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
|
234 ;;; Check for fboundp first so that if user autoloads them from non standard |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
235 ;;; places, the users bindings will take precedence. |
3618
58f653fa4e5b
(bibtex-mode-map): Use tex-insert-quote, not TeX-...
Richard M. Stallman <rms@gnu.org>
parents:
3591
diff
changeset
|
236 (if (not (fboundp 'tex-insert-quote)) |
58f653fa4e5b
(bibtex-mode-map): Use tex-insert-quote, not TeX-...
Richard M. Stallman <rms@gnu.org>
parents:
3591
diff
changeset
|
237 (autoload 'tex-insert-quote "tex-mode")) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
238 (if (not (fboundp 'sort-subr)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
239 (autoload 'sort-subr "sort")) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
240 |
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
|
241 ;;; These should be in a more generally accessible location. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
242 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
243 (defun string-equalp (s1 s2) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
244 "Like string= except differences in case are 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
|
245 (let ((ss1 (if (symbolp s1) (symbol-name s1) s1)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
246 (ss2 (if (symbolp s2) (symbol-name s2) s2))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
247 (and (= (length ss1) (length ss2)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
248 (string-equal (upcase ss1) (upcase ss2))))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
249 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
250 ;;; This should be moved into simple.el, and the functions there modified |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
251 ;;; to call it rather than doing it themselves. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
252 (defun put-string-on-kill-ring (string) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
253 "Make STRING be the first element of the kill ring." |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
254 (setq kill-ring (cons string kill-ring)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
255 (if (> (length kill-ring) kill-ring-max) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
256 (setcdr (nthcdr (1- kill-ring-max) kill-ring) 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
|
257 (setq kill-ring-yank-pointer kill-ring)) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
258 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
259 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
260 |
257 | 261 |
262 (defvar bibtex-clean-entry-zap-empty-opts t | |
561 | 263 "*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
|
264 |
257 | 265 (defvar bibtex-include-OPTcrossref t |
561 | 266 "*If non-nil, all entries will have an OPTcrossref field.") |
257 | 267 (defvar bibtex-include-OPTkey t |
561 | 268 "*If non-nil, all entries will have an OPTkey field.") |
257 | 269 (defvar bibtex-include-OPTannote t |
561 | 270 "*If non-nil, all entries will have an OPTannote field.") |
257 | 271 |
272 ;; note: the user should be allowed to have their own list of always | |
273 ;; available optional fields. exs: "keywords" "categories" | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
274 |
257 | 275 (defvar bibtex-mode-user-optional-fields nil ;no default value |
561 | 276 "*List of optional fields that user want to have as always present |
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
|
277 when making a bibtex entry. One possibility is for ``keywords''. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
278 Entries can be either strings or conses, in which case the car should be |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
279 string and the cdr the value to be inserted.") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
280 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
281 (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
|
282 (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
|
283 ;; [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
|
284 (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
|
285 (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
|
286 (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
|
287 (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
|
288 (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
|
289 (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
|
290 (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
|
291 (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
|
292 (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
|
293 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
|
294 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
295 (defvar bibtex-mode-abbrev-table 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
|
296 (define-abbrev-table 'bibtex-mode-abbrev-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
|
297 (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
|
298 (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
|
299 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
300 (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
|
301 (define-key km "\n" 'bibtex-next-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
|
302 (define-key km "\C-c\"" 'bibtex-remove-double-quotes) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
303 (define-key km "\C-c\C-c" 'bibtex-clean-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
|
304 (define-key km "\C-c?" 'describe-mode) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
305 (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
|
306 (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
|
307 (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
|
308 (define-key km "\C-c\C-d" 'bibtex-empty-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
|
309 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
310 ;; [alarson:19920131.1543CST] |
3618
58f653fa4e5b
(bibtex-mode-map): Use tex-insert-quote, not TeX-...
Richard M. Stallman <rms@gnu.org>
parents:
3591
diff
changeset
|
311 (define-key km "\"" 'tex-insert-quote) |
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
|
312 (define-key km "\C-c$" 'ispell-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
|
313 (define-key km "\M-\C-a" 'beginning-of-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
|
314 (define-key km "\M-\C-e" 'end-of-bibtex-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
|
315 (define-key km "\C-c\C-b" 'bibtex-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
|
316 ; (define-key km "\C-cn" 'narrow-to-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
|
317 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
318 (define-key km "\C-c\C-e\C-a" 'bibtex-Article) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
319 (define-key km "\C-c\C-e\C-b" 'bibtex-Book) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
320 ; (define-key km "\C-c\C-e\C-d" 'bibtex-DEAthesis) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
321 (define-key km "\C-c\C-e\C-c" 'bibtex-InProceedings) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
322 (define-key km "\C-c\C-e\C-i" 'bibtex-InBook) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
323 (define-key km "\C-c\C-ei" 'bibtex-InCollection) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
324 (define-key km "\C-c\C-eI" 'bibtex-InProceedings) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
325 (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
|
326 (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
|
327 (define-key km "\C-c\C-eM" 'bibtex-Misc) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
328 (define-key km "\C-c\C-o" 'bibtex-remove-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
|
329 (define-key km "\C-c\C-e\C-p" 'bibtex-PhdThesis) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
330 (define-key km "\C-c\C-ep" 'bibtex-Proceedings) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
331 (define-key km "\C-c\C-eP" 'bibtex-preamble) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
332 (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
|
333 (define-key km "\C-c\C-e\C-s" 'bibtex-string) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
334 (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
|
335 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
|
336 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
337 (defvar bibtex-pop-previous-search-point 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
|
338 "Next point where bibtex-pop-previous should start looking for a similar |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
339 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
|
340 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
341 (defvar bibtex-pop-next-search-point 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
|
342 "Next point where bibtex-pop-next should start looking for a similar |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
343 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
|
344 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
345 (defvar bibtex-entry-field-alist |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
346 '( |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
347 ("Article" . ((("author" "title" "journal" "year") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
348 ("volume" "number" "pages" "month" "note")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
349 (("author" "title") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
350 ("journal" "year" "volume" "number" "pages" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
351 "month" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
352 ("Book" . ((("author" "title" "publisher" "year") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
353 ("editor" "volume" "number" "series" "address" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
354 "edition" "month" "note")))) |
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 ("Booklet" . ((("title") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
356 ("author" "howpublished" "address" "month" "year" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
357 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
358 ;; France: Dipl\^{o}me d'Etudes Approfondies (similar to Master'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
|
359 ; ("DEAthesis" . ((("author" "title" "school" "year") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
360 ; ("address" "month" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
361 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
362 ("InBook" . ((("author" "title" "chapter" "publisher" "year") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
363 ("editor" "pages" "volume" "number" "series" "address" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
364 "edition" "month" "type" "note")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
365 (("author" "title" "chapter") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
366 ("publisher" "year" "editor" "pages" "volume" "number" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
367 "series" "address" "edition" "month" "type" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
368 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
369 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
370 ("InCollection" . ((("author" "title" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
371 "booktitle" "publisher" "year") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
372 ("editor" "volume" "number" "series" "type" "chapter" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
373 "pages" "address" "edition" "month" "note")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
374 (("author" "title") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
375 ("booktitle" "publisher" "year" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
376 "editor" "volume" "number" "series" "type" "chapter" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
377 "pages" "address" "edition" "month" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
378 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
379 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
380 ("InProceedings" . ((("author" "title" "booktitle" "year") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
381 ("editor" "volume" "number" "series" "pages" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
382 "organization" "publisher" "address" "month" "note")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
383 (("author" "title") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
384 ("editor" "volume" "number" "series" "pages" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
385 "booktitle" "year" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
386 "organization" "publisher" "address" "month" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
387 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
388 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
389 ("Manual" . ((("title") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
390 ("author" "organization" "address" "edition" "year" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
391 "month" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
392 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
393 ("MastersThesis" . ((("author" "title" "school" "year") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
394 ("address" "month" "note" "type")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
395 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
396 ("Misc" . ((() |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
397 ("author" "title" "howpublished" "year" "month" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
398 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
399 ("PhdThesis" . ((("author" "title" "school" "year") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
400 ("address" "month" "type" "note")))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
401 |
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 ("Proceedings" . ((("title" "year") |
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 ("editor" "volume" "number" "series" "publisher" |
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 "organization" "address" "month" "note")))) |
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 |
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 ("TechReport" . ((("author" "title" "institution" "year") |
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 ("type" "number" "address" "month" "note")))) |
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 |
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 ("Unpublished" . ((("author" "title" "note") |
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 ("year" "month")))) |
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 ) |
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 |
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 "List of (entry-name (required optional) (crossref-required crossref-optional)) |
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 tripples. If the third element is nil, then the first pair can be used. Required |
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 and optional are lists of strings. All entry creation functions use this variable |
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 to generate entries, and bibtex-entry ensures the entry type is valid. This |
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 variable can be used for example to make bibtex manipulate a different set of 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
|
418 types, e.g. a crossreference document of organization types.") |
257 | 419 |
420 | |
421 ;;; A bibtex file is a sequence of entries, either string definitions | |
422 ;;; or reference entries. A reference entry has a type part, a | |
423 ;;; key part, and a comma-separated sequence of fields. A string | |
424 ;;; entry has a single field. A field has a left and right part, | |
425 ;;; separated by a '='. The left part is the name, the right part is | |
426 ;;; the text. Here come the definitions allowing to create and/or parse | |
427 ;;; entries and fields: | |
428 | |
429 ;;; fields | |
430 (defun bibtex-cfield (name text) | |
561 | 431 "Create a regexp for a bibtex field of name NAME and text TEXT" |
257 | 432 (concat ",[ \t\n]*\\(" |
433 name | |
434 "\\)[ \t\n]*=[ \t\n]*\\(" | |
435 text | |
436 "\\)")) | |
437 (defconst bibtex-name-in-cfield 1 | |
561 | 438 "The regexp subexpression number of the name part in bibtex-cfield.") |
257 | 439 (defconst bibtex-text-in-cfield 2 |
561 | 440 "The regexp subexpression number of the text part in bibtex-cfield.") |
257 | 441 |
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
|
442 ;;; KAWATA Yasuro <yasuro@qqqq.maekawa.is.uec.ac.jp> reported bug that "/" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
443 ;;; was not premitted in field names. The old value of this var was: |
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 ;;; "[A-Za-z][---A-Za-z0-9:_+]*" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
445 ;;; According to the LaTeX manual, page 71, the legal values are letters, |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
446 ;;; digits, and punctuation other than comma. Section 2.1 defines |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
447 ;;; punctuation as: |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
448 ;;; .:;,?!`'()[]-/*@ |
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 ;;; and says that += can be used in normal text. Specifically #$%&~_^\{} |
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 ;;; are called out as special chars. Some experimentation with LaTeX |
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 ;;; indicates that # and ~ definitely don't work, but that the following |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
452 ;;; citation does! \cite{a0.:;?!`'()[]-/*@_&$^+=|<>}. I chose here to |
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 ;;; permit _ since it was previously allowed, but otherwise to only handle |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
454 ;;; punc 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
|
455 ;;; Amendment: I couldn't get a regexp with both "[]"'s and hyphen to |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
456 ;;; work. It looks like you need them both to be the first entries in a |
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 ;;; regexp pattern. [alarson:19930315.0900CST] |
5409
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
458 ;;; |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
459 ;;; New amendment[MB]: I have corrected the following regexp according to |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
460 ;;; emacs19 rules. I also added ']' to the list of characters allowed in |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
461 ;;; a field name. |
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
|
462 |
5409
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
463 (defconst bibtex-field-name "[A-Za-z][]A-Za-z0-9.:;?!`'()/*@_+=-]*" |
257 | 464 "Regexp defining the name part of a bibtex field.") |
465 | |
466 ;; bibtex-field-text must be able to handle | |
467 ;; title = "Proc. Fifteenth Annual" # STOC, | |
468 ;; month = "10~" # jan, | |
469 ;; year = "{\noopsort{1973c}}1981", | |
470 ;; month = apr # "-" # may, | |
471 ;; key = {Volume-2}, | |
472 ;; note = "Volume~2 is listed under Knuth \cite{book-full}" | |
473 ;; i have added a few of these, but not all! -- MON | |
474 | |
475 (defconst bibtex-field-const | |
5409
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
476 "[0-9A-Za-z][A-Za-z0-9:_+-]*" |
257 | 477 "Format of a bibtex field constant.") |
561 | 478 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
479 (defconst bibtex-field-string |
257 | 480 (concat |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
481 "\"[^\"]*[^\\\\]\"\\|\"\"") |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
482 "Match either a string or an empty string.") |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
483 |
257 | 484 (defconst bibtex-field-string-or-const |
485 (concat bibtex-field-const "\\|" bibtex-field-string) | |
561 | 486 "Match either bibtex-field-string or bibtex-field-const.") |
257 | 487 |
488 (defconst bibtex-field-text | |
489 (concat | |
490 "\\(" bibtex-field-string-or-const "\\)" | |
491 "\\([ \t\n]+#[ \t\n]+\\(" bibtex-field-string-or-const "\\)\\)*\\|" | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
492 "{[^{}]*[^\\\\]}") |
257 | 493 "Regexp defining the text part of a bibtex field: either a string, or |
494 an empty string, or a constant followed by one or more # / constant pairs. | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
495 Also matches simple {...} patterns.") |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
496 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
497 ;(defconst bibtex-field-text |
5409
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
498 ; "\"[^\"]*[^\\\\]\"\\|\"\"\\|[0-9A-Za-z][A-Za-z0-9:_+-]*" |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
499 ; "Regexp defining the text part of a bibtex field: either a string, or an empty string, or a constant.") |
257 | 500 |
501 (defconst bibtex-field | |
502 (bibtex-cfield bibtex-field-name bibtex-field-text) | |
503 "Regexp defining the format of a bibtex field") | |
504 | |
505 (defconst bibtex-name-in-field bibtex-name-in-cfield | |
561 | 506 "The regexp subexpression number of the name part in bibtex-field") |
257 | 507 (defconst bibtex-text-in-field bibtex-text-in-cfield |
561 | 508 "The regexp subexpression number of the text part in bibtex-field") |
257 | 509 |
510 ;;; references | |
511 (defconst bibtex-reference-type | |
512 "@[A-Za-z]+" | |
561 | 513 "Regexp defining the type part of a bibtex reference entry") |
257 | 514 (defconst bibtex-reference-head |
515 (concat "^[ \t]*\\(" | |
516 bibtex-reference-type | |
517 "\\)[ \t]*[({]\\(" | |
518 bibtex-field-name | |
519 "\\)") | |
561 | 520 "Regexp defining format of the header line of a bibtex reference entry") |
257 | 521 (defconst bibtex-type-in-head 1 |
561 | 522 "The regexp subexpression number of the type part in bibtex-reference-head") |
257 | 523 (defconst bibtex-key-in-head 2 |
561 | 524 "The regexp subexpression number of the key part in |
525 bibtex-reference-head") | |
257 | 526 |
527 (defconst bibtex-reference | |
5409
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
528 (concat |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
529 ;; This is the unparenthesized equivalent of bibtex-reference-head: |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
530 "^[ \t]*" |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
531 bibtex-reference-type |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
532 "[ \t]*[({]\\(" |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
533 bibtex-field-name |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
534 "\\)" |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
535 ;; End of unparenthesized equivalent of bibtex-reference-head |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
536 "\\([ \t\n]*" bibtex-field "\\)*" |
a5c38a92e787
(bibtex-field-name, bibtex-field-const, bibtex-field-text):
Richard M. Stallman <rms@gnu.org>
parents:
5309
diff
changeset
|
537 "[ \t\n]*[})]") |
561 | 538 "Regexp defining the format of a bibtex reference entry") |
257 | 539 (defconst bibtex-type-in-reference bibtex-type-in-head |
561 | 540 "The regexp subexpression number of the type part in bibtex-reference") |
257 | 541 (defconst bibtex-key-in-reference bibtex-key-in-head |
561 | 542 "The regexp subexpression number of the key part in |
543 bibtex-reference") | |
257 | 544 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
545 ;;; strings |
257 | 546 (defconst bibtex-string |
547 (concat "^[ \t]*@[sS][tT][rR][iI][nN][gG][ \t\n]*[({][ \t\n]*\\(" | |
548 bibtex-field-name | |
549 "\\)[ \t\n]*=[ \t\n]*\\(" | |
550 bibtex-field-text | |
551 "\\)[ \t\n]*[})]") | |
561 | 552 "Regexp defining the format of a bibtex string entry") |
257 | 553 (defconst bibtex-name-in-string 1 |
561 | 554 "The regexp subexpression of the name part in bibtex-string") |
257 | 555 (defconst bibtex-text-in-string 2 |
561 | 556 "The regexp subexpression of the text part in bibtex-string") |
257 | 557 |
3552
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
558 (defconst bibtex-name-alignment 2 |
257 | 559 "Alignment for the name part in BibTeX fields. |
560 Chosen on aesthetic grounds only.") | |
561 | |
562 (defconst bibtex-text-alignment (length " organization = ") | |
563 "Alignment for the text part in BibTeX fields. | |
564 Equal to the space needed for the longest name part.") | |
565 | |
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
|
566 (defun bibtex-current-entry-label (&optional include-cite kill) |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3552
diff
changeset
|
567 "Return the label of the bibtex entry containing, or preceding point. |
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
|
568 Optional argument INCLUDE-CITE, if true means put a '\\cite{}' around 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
|
569 returned value. Second optional argument KILL, if true, means place 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
|
570 returned value in the kill buffer. Interactively; providing prefix |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
571 argument makes INCLUDE-CITE true, and kill is true by default. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
572 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
573 Rationale: |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
574 The intention is that someone will write a function that can be bound to |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
575 a mouse key so that people entering TeX can just mouse on the 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
|
576 and have the citation key inserted at the current point (which will almost |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3552
diff
changeset
|
577 certainly be in some other buffer). In the interim this function is |
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
|
578 marginally useful for keyboard binding and is not bound by default. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
579 Suggested binding is ^C-k." |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
580 (interactive (list current-prefix-arg t)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
581 (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
|
582 (beginning-of-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
|
583 (re-search-forward bibtex-reference-head (save-excursion (end-of-bibtex-entry) (point))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
584 (let* ((key (buffer-substring (match-beginning bibtex-key-in-head) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
585 (match-end bibtex-key-in-head))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
586 (val (if include-cite |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
587 (format "\\cite{%s}" key) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
588 key))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
589 (if kill |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
590 (put-string-on-kill-ring val)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
591 val))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
592 |
257 | 593 ;;; bibtex mode: |
594 | |
3367
d8301f8d5b73
(bibtex-mode): Add autoload.
Richard M. Stallman <rms@gnu.org>
parents:
2864
diff
changeset
|
595 ;;;###autoload |
257 | 596 (defun bibtex-mode () |
597 "Major mode for editing bibtex files. | |
598 | |
599 \\{bibtex-mode-map} | |
600 | |
601 A command such as \\[bibtex-Book] will outline the fields for a BibTeX book entry. | |
602 | |
603 The optional fields start with the string OPT, and thus ignored by BibTeX. | |
604 The OPT string may be removed from a field with \\[bibtex-remove-OPT]. | |
605 \\[bibtex-kill-optional-field] kills the current optional field entirely. | |
606 \\[bibtex-remove-double-quotes] removes the double-quotes around the text of | |
607 the current field. \\[bibtex-empty-field] replaces the text of the current | |
608 field with the default \"\". | |
609 | |
610 The command \\[bibtex-clean-entry] cleans the current entry, i.e. (i) removes | |
611 double-quotes from entirely numerical fields, (ii) removes OPT from all | |
612 non-empty optional fields, (iii) removes all empty optional fields, and (iv) | |
613 checks that no non-optional fields are empty. | |
614 | |
615 Use \\[bibtex-find-text] to position the dot at the end of the current field. | |
616 Use \\[bibtex-next-field] to move to end of the next field. | |
617 | |
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
|
618 The following may be of interest as well: |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
619 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
620 Functions: |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
621 find-bibtex-duplicates |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
622 find-bibtex-entry-location |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
623 hide-bibtex-entry-bodies |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
624 sort-bibtex-entries |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
625 validate-bibtex-buffer |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
626 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
627 Variables: |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
628 bibtex-clean-entry-zap-empty-opts |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
629 bibtex-entry-field-alist |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
630 bibtex-include-OPTannote |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
631 bibtex-include-OPTcrossref |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
632 bibtex-include-OPTkey |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
633 bibtex-maintain-sorted-entries |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
634 bibtex-mode-user-optional-fields |
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 |
257 | 636 Fields: |
637 address | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
638 Publisher's address |
257 | 639 annote |
640 Long annotation used for annotated bibliographies (begins sentence) | |
641 author | |
642 Name(s) of author(s), in BibTeX name format | |
643 booktitle | |
644 Book title when the thing being referenced isn't the whole book. | |
645 For book entries, the title field should be used instead. | |
646 chapter | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
647 Chapter number |
257 | 648 crossref |
649 The database key of the entry being cross referenced. | |
650 edition | |
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
|
651 Edition of a book (e.g., \"second\") |
257 | 652 editor |
653 Name(s) of editor(s), in BibTeX name format. | |
654 If there is also an author field, then the editor field should be | |
655 for the book or collection that the work appears in | |
656 howpublished | |
657 How something strange has been published (begins sentence) | |
658 institution | |
659 Sponsoring institution | |
660 journal | |
661 Journal name (macros are provided for many) | |
662 key | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
663 Alphabetizing and labeling key (needed when no author or editor) |
257 | 664 month |
665 Month (macros are provided) | |
666 note | |
667 To help the reader find a reference (begins sentence) | |
668 number | |
669 Number of a journal or technical report | |
670 organization | |
671 Organization (sponsoring a conference) | |
672 pages | |
673 Page number or numbers (use `--' to separate a range) | |
674 publisher | |
675 Publisher name | |
676 school | |
677 School name (for theses) | |
678 series | |
679 The name of a series or set of books. | |
680 An individual book will will also have it's own title | |
681 title | |
682 The title of the thing being referenced | |
683 type | |
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
|
684 Type of a technical report (e.g., \"Research Note\") to be used |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
685 instead of the default \"Technical Report\" |
257 | 686 volume |
687 Volume of a journal or multivolume work | |
688 year | |
689 Year---should contain only numerals | |
690 --------------------------------------------------------- | |
691 Entry to this mode calls the value of bibtex-mode-hook if that value is | |
692 non-nil." | |
693 (interactive) | |
694 (kill-all-local-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
|
695 (set-syntax-table bibtex-mode-syntax-table) |
257 | 696 (use-local-map bibtex-mode-map) |
697 (setq major-mode 'bibtex-mode) | |
698 (setq mode-name "BibTeX") | |
699 (set-syntax-table bibtex-mode-syntax-table) | |
700 (setq local-abbrev-table bibtex-mode-abbrev-table) | |
701 (make-local-variable 'paragraph-start) | |
702 (setq paragraph-start "^[ \f\n\t]*$") | |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3552
diff
changeset
|
703 (auto-fill-mode 1) ; nice alignments |
257 | 704 (setq left-margin (+ bibtex-text-alignment 1)) |
705 | |
706 (run-hooks 'bibtex-mode-hook)) | |
707 | |
708 (defun bibtex-move-outside-of-entry () | |
709 "Make sure we are outside of a bib entry" | |
710 (cond ((or | |
711 (= (point) (point-max)) | |
712 (= (point) (point-min)) | |
713 (looking-at "[ \n]*@") | |
714 ) | |
715 t) | |
716 (t | |
717 (backward-paragraph) | |
718 (forward-paragraph))) | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
719 (re-search-forward "[ \t\n]*" (point-max) t)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
720 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
721 (defun ispell-abstract () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
722 (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
723 (beginning-of-bibtex-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
724 (re-search-forward "^[ \t]*[OPT]*abstract[ \t]*=") |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
725 (ispell-region (point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
726 (save-excursion (forward-sexp) (point)))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
727 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
728 (defun beginning-of-bibtex-entry () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
729 (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
730 (re-search-backward "^@" nil 'move)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
731 |
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
|
732 (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
|
733 ;; It might be a good idea to have forward-sexp with argument 0 do what |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
734 ;; this function tries to do, namely 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
|
735 ;; Maybe a better name for this would be skip-to-next-sexp. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
736 ;; alternative implementation: |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
737 ;; (let ((parse-sexp-ignore-comments t)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
738 ;; (forward-sexp 1) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
739 ;; (forward-sexp -1)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
740 ;; but I've had problems with this not getting the parse of 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
|
741 ;; right going backward if they contain unbalanced expressions or string |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
742 ;; quotes. [alarson:19920217.1021CST] |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
743 (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
|
744 (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
|
745 (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
|
746 ;; 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
|
747 ;; 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
|
748 ;; 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
|
749 ;; 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
|
750 (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
|
751 ;; 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
|
752 ((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
|
753 (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
|
754 (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
|
755 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
756 ;;; [alarson:19920214.1007CST] |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
757 (defun end-of-bibtex-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
|
758 "If inside an entry, move to the end of it, otherwise move to the 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
|
759 of the next entry." |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
760 (interactive) |
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
|
761 ;; if point was previously at the end of an entry, this puts us |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
762 ;; inside the next entry, otherwise we remain in the current one. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
763 (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
|
764 (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
|
765 ;;; (skip-chars-forward " \t\n") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
766 (end-of-line)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
767 (beginning-of-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
|
768 (let ((parse-sexp-ignore-comments t)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
769 (forward-sexp) ; skip entry type |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
770 (forward-sexp) ; skip entry body |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
771 )) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
772 ;(defun end-of-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
|
773 ; (interactive) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
774 ; (re-search-forward "}$" nil 'move)) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
775 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
776 (defun ispell-bibtex-entry () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
777 (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
778 (ispell-region (progn (beginning-of-bibtex-entry) (point)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
779 (progn (end-of-bibtex-entry) (point)))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
780 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
781 (defun narrow-to-bibtex-entry () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
782 (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
783 (save-excursion |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
784 (narrow-to-region (progn (beginning-of-bibtex-entry) (point)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
785 (progn (end-of-bibtex-entry) (point))))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
786 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
787 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
788 (defun beginning-of-first-bibtex-entry () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
789 (goto-char (point-min)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
790 (cond |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
791 ((re-search-forward "^@" nil 'move) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
792 (beginning-of-line)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
793 ((and (bobp) (eobp)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
794 nil) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
795 (t |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
796 (message "Warning: No bibtex entries found!")))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
797 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
798 (defun hide-bibtex-entry-bodies (&optional arg) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
799 "Hide all lines between first and last bibtex entries not beginning with @. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
800 With argument, show all text." |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
801 (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
|
802 (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
|
803 (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
|
804 ;; 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
|
805 ;; 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
|
806 (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
|
807 (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
|
808 (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
|
809 (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
|
810 (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
|
811 ;; (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
|
812 (save-excursion |
dc1a3f9ea36d
(hide-bibtex-entry-bodies): Don't use replace-regexp.
Richard M. Stallman <rms@gnu.org>
parents:
4611
diff
changeset
|
813 (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
|
814 (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
|
815 (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
|
816 (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
|
817 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
818 (defvar bibtex-sort-ignore-string-entries 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
|
819 "*If true, bibtex @STRING entries are ignored when determining ordering |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
820 of the buffer (e.g. sorting, locating alphabetical position for new entries, |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
821 etc.)") |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
822 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
823 (defun sort-bibtex-entries () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
824 "Sort bibtex entries alphabetically by key. |
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
|
825 Text before the first bibtex entry, and following the last is not affected. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
826 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
|
827 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
828 Bugs: |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
829 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
|
830 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
|
831 part of the following entry." |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
832 (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
833 (save-restriction |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
834 (beginning-of-first-bibtex-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
835 (narrow-to-region (point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
836 (save-excursion |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
837 (goto-char (point-max)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
838 (beginning-of-bibtex-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
839 (end-of-bibtex-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
840 (point))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
841 (sort-subr nil ; reversep |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3552
diff
changeset
|
842 ;; beginning of record function |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
843 'forward-line |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
844 ;; end of record function |
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
|
845 (function (lambda () (and (re-search-forward "}\\s-*\n[\n \t]*@" nil 'move) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
846 (forward-char -2)))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
847 ;; start of key function |
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
848 (if bibtex-sort-ignore-string-entries |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
849 (function (lambda () |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
850 (while (and (re-search-forward "^\\s-*\\([@a-zA-Z]*\\)\\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
|
851 (string-equalp "@string" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
852 (buffer-substring (match-beginning 1) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
853 (match-end 1))))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
854 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
|
855 (function (lambda () (re-search-forward "{\\s-*") nil))) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
856 ;; end of key function |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
857 (function (lambda () (search-forward ","))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
858 ))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
859 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
860 (defun map-bibtex-entries (fun) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
861 "Call FUN for each bibtex entry starting with the current, to the end of the file. |
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
|
862 FUN is called with one argument, the key of the entry, and with point inside the 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
|
863 If bibtex-sort-ignore-string-entries is true, FUN will not be called for @string entries." |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
864 (beginning-of-bibtex-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
|
865 (while (re-search-forward "^@[^{]*{[ \t]*\\([^, ]*\\)" nil t) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
866 (if (and bibtex-sort-ignore-string-entries |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
867 (string-equalp "@string{" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
868 (buffer-substring (match-beginning 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
|
869 (match-beginning 1)))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
870 nil ; ignore the @string 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
|
871 (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
|
872 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
873 (defun find-bibtex-entry-location (entry-name) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
874 "Searches from beginning of current buffer looking for place to put the |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
875 bibtex entry named ENTRY-NAME. Buffer is assumed to be in sorted order, |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
876 without duplicates (see \\[sort-bibtex-entries]), if it is not, an error will |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
877 be signalled." |
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
|
878 (interactive "sBibtex entry key: ") |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
879 (let ((previous nil) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
880 point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
881 (beginning-of-first-bibtex-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
882 (or (catch 'done |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
883 (map-bibtex-entries (function (lambda (current) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
884 (cond |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
885 ((string-equal entry-name current) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
886 (error "Entry duplicates existing!")) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
887 ((or (null previous) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
888 (string< previous current)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
889 (setq previous current |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
890 point (point)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
891 (if (string< entry-name current) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
892 (progn |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
893 (beginning-of-bibtex-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
894 ;; Many schemes append strings to |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
895 ;; existing entries to resolve them, |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
896 ;; so initial substring matches may |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
897 ;; indicate a duplicate entry. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
898 (let ((idx (string-match (regexp-quote entry-name) current))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
899 (if (and (integerp idx) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
900 (zerop idx)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
901 (progn |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
902 (message "Warning: Entry %s may be a duplicate of %s!" |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
903 entry-name current) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
904 (ding t)))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
905 (throw 'done t)))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
906 ((string-equal previous current) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
907 (error "Duplicate here with previous!")) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
908 (t (error "Entries out of order here!"))))))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
909 (end-of-bibtex-entry)))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
910 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
911 (defun validate-bibtex-buffer () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
912 "Find some typical errors in bibtex files. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
913 1. At signs (@) not as first char of a line. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
914 2. Double quotes (\") inside strings. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
915 3. Closing braces (}) not the last character of a line." |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
916 (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
917 (let ((point (point))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
918 (while (re-search-forward ".@" nil t) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
919 (let* ((foo (parse-partial-sexp (save-excursion (beginning-of-bibtex-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
920 (point)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
921 (point))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
922 (in-a-string (nth 3 foo))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
923 (if (not in-a-string) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
924 (error "At sign (@) out of place!")))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
925 (goto-char point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
926 (while (search-forward "\"" nil t) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
927 (or (looking-at "[,}][ \t]*$") |
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
928 (char-equal (preceding-char) ?\") |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
929 ;; some versions put closing brace on separate line. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
930 (looking-at "[ \t]*\n}") |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
931 (save-excursion |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
932 (save-restriction |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
933 (narrow-to-region (point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
934 (progn (beginning-of-line) (point))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
935 (looking-at "^[ \t]*[a-zA-Z]+[ \t]*=[ \t]*\"$"))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
936 (error "Quote out of place, or missing \",\" or \"}\"!"))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
937 (goto-char point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
938 ;; This is only approximate, should actually search for close braces, |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
939 ;; then see if they are inside a string, or at the end of a line. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
940 ;; This just gets the typical case of whitespace after a closing brace. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
941 (while (search-forward "}[ \t]+$" nil t) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
942 (error "Brace not last char of line!")) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
943 (goto-char point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
944 (message "Bibtex buffer appears o.k."))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
945 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
946 (defun find-bibtex-duplicates () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
947 "Searches forward in current buffer looking for duplicate bibtex entries. |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
948 Buffer is assumed to be sorted, see \\[sort-bibtex-entries]" |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
949 (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
950 (let ((point (point))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
951 ;; errors if things are not right... |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
952 (find-bibtex-entry-location (make-string 10 255)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
953 (goto-char point) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
954 (message "No duplicates found!"))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
955 |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
956 |
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
|
957 ;;; assoc doesn't ignore case, so we need an assoc that does... |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
958 (defun assoc-string-equalp (thing alist) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
959 (or (assoc thing alist) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
960 (while (and alist |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
961 (not (string-equalp thing (car (car alist))))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
962 (setq alist (cdr alist))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
963 (car alist))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
964 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
965 (defvar bibtex-maintain-sorted-entries nil |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
966 "*If true, bibtex-mode will attempt to maintain all bibtex entries in |
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
|
967 sorted order. |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
968 |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
969 Note that this is more a property of a file than a personal preference 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
|
970 as such should normally be set via a file local variable entry.") |
257 | 971 |
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
|
972 (defun bibtex-entry (entry-type &optional required optional) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
973 (interactive (let* ((completion-ignore-case t) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
974 (e-t (completing-read "Entry Type: " bibtex-entry-field-alist |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
975 nil t))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
976 (list e-t))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
977 (if (and (null required) (null optional)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
978 (let* ((e (assoc-string-equalp entry-type bibtex-entry-field-alist)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
979 (r-n-o (elt e 1)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
980 (c-ref (elt e 2))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
981 (if (null e) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
982 (error "Bibtex entry type %s not defined!")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
983 (if (and bibtex-include-OPTcrossref c-ref) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
984 (setq required (elt c-ref 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
|
985 optional (elt c-ref 1)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
986 (setq required (elt r-n-o 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
|
987 optional (elt r-n-o 1))))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
988 (let ((key (if bibtex-maintain-sorted-entries |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
989 (read-string (format "%s key: " entry-type))))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
990 (if key |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
991 (find-bibtex-entry-location key)) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
992 (bibtex-move-outside-of-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
993 (insert "@" entry-type "{") |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
994 (if key |
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
|
995 (insert key)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
996 (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
|
997 (mapcar 'bibtex-make-field required) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
998 (if bibtex-include-OPTcrossref |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
999 (bibtex-make-optional-field "crossref")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1000 (if bibtex-include-OPTkey |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1001 (bibtex-make-optional-field "key")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1002 (mapcar 'bibtex-make-optional-field optional) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1003 (mapcar 'bibtex-make-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
|
1004 bibtex-mode-user-optional-fields) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1005 (if bibtex-include-OPTannote |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1006 (bibtex-make-optional-field "annote")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1007 (insert "\n}\n\n")) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1008 (if key |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1009 (bibtex-next-field t)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1010 (run-hooks 'bibtex-add-entry-hook))) |
257 | 1011 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1012 ;; (defun bibtex-entry (entry-type required optional) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1013 ;; (bibtex-move-outside-of-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1014 ;; (insert (concat "@" entry-type "{,\n\n}\n\n")) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1015 ;; (previous-line 3) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1016 ;; (insert (mapconcat 'bibtex-make-entry required ",\n")) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1017 ;; (if required |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1018 ;; (if optional |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1019 ;; (insert ",\n"))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1020 ;; (insert (mapconcat 'bibtex-make-OPT-entry optional ",\n")) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1021 ;; (if bibtex-mode-user-optional-fields ;MON... |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1022 ;; (progn |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1023 ;; (if optional |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1024 ;; (insert ",\n")) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1025 ;; (insert (mapconcat 'bibtex-make-OPT-entry |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1026 ;; bibtex-mode-user-optional-fields |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1027 ;; ",\n")))) ;MON |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1028 ;; (up-list -1) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1029 ;; (forward-char 1)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1030 |
561 | 1031 |
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
|
1032 (defun bibtex-make-field (e-t) |
257 | 1033 (interactive "sBibTeX entry type: ") |
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
|
1034 (let ((name (if (consp e-t) (car e-t) e-t)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1035 (value (if (consp e-t) (cdr e-t) ""))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1036 (insert ",\n") |
3552
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1037 (indent-to-column bibtex-name-alignment) |
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
|
1038 (insert name " = ") |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1039 (indent-to-column bibtex-text-alignment) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1040 ;; lucid emacs prin1-to-string breaks the undo chain. When they fix |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1041 ;; that, the hack can be removed. [alarson:19930316.0805CST] |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1042 ; (insert (prin1-to-string value)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1043 ;; begin hack |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1044 (insert (format (if (stringp value) "\"%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
|
1045 value)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1046 ;; end hack |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1047 nil)) |
257 | 1048 |
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
|
1049 (defun bibtex-make-optional-field (e-t) |
257 | 1050 (interactive "sOptional BibTeX entry type: ") |
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
|
1051 (if (consp e-t) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1052 (setq e-t (cons (concat "OPT" (car e-t)) (cdr e-t))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1053 (setq e-t (concat "OPT" e-t))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1054 (bibtex-make-field e-t)) |
257 | 1055 |
1056 ;; What to do about crossref? if present, journal and year are | |
1057 ;; both optional. Due to this, i move all of them into optional. -- MON | |
1058 | |
1059 (defun bibtex-Article () | |
1060 (interactive) | |
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
|
1061 (bibtex-entry "Article")) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1062 |
257 | 1063 (defun bibtex-Book () |
1064 (interactive) | |
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
|
1065 (bibtex-entry "Book")) |
257 | 1066 |
1067 (defun bibtex-Booklet () | |
1068 (interactive) | |
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
|
1069 (bibtex-entry "Booklet")) |
257 | 1070 |
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
|
1071 ;(defun bibtex-DEAthesis () |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1072 ; (interactive) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1073 ; (bibtex-entry "DEAthesis")) |
257 | 1074 |
1075 (defun bibtex-InBook () | |
1076 (interactive) | |
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
|
1077 (bibtex-entry "InBook")) |
257 | 1078 |
1079 (defun bibtex-InCollection () | |
1080 (interactive) | |
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
|
1081 (bibtex-entry "InCollection")) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1082 |
257 | 1083 (defun bibtex-InProceedings () |
1084 (interactive) | |
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
|
1085 (bibtex-entry "InProceedings")) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1086 |
257 | 1087 (defun bibtex-Manual () |
1088 (interactive) | |
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
|
1089 (bibtex-entry "Manual")) |
257 | 1090 |
1091 (defun bibtex-MastersThesis () | |
1092 (interactive) | |
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
|
1093 (bibtex-entry "MastersThesis")) |
257 | 1094 |
1095 (defun bibtex-Misc () | |
1096 (interactive) | |
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
|
1097 (bibtex-entry "Misc")) |
257 | 1098 |
1099 (defun bibtex-PhdThesis () | |
1100 (interactive) | |
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
|
1101 (bibtex-entry "PhdThesis")) |
257 | 1102 |
1103 (defun bibtex-Proceedings () | |
1104 (interactive) | |
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
|
1105 (bibtex-entry "Proceedings")) |
257 | 1106 |
1107 (defun bibtex-TechReport () | |
1108 (interactive) | |
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
|
1109 (bibtex-entry "TechReport")) |
257 | 1110 |
1111 (defun bibtex-Unpublished () | |
1112 (interactive) | |
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
|
1113 (bibtex-entry "Unpublished")) |
257 | 1114 |
1115 (defun bibtex-string () | |
1116 (interactive) | |
1117 (bibtex-move-outside-of-entry) | |
2864
9c3bf565b354
* bibtex.el (bibtex-string): Use \" instead of "" to get a double
Jim Blandy <jimb@redhat.com>
parents:
2602
diff
changeset
|
1118 (insert "@string{ = \"\"}\n") |
257 | 1119 (previous-line 1) |
1120 (forward-char 8)) | |
1121 | |
1122 (defun bibtex-preamble () | |
1123 (interactive) | |
1124 (bibtex-move-outside-of-entry) | |
1125 (insert "@Preamble{}\n") | |
1126 (previous-line 1) | |
1127 (forward-char 10)) | |
1128 | |
1129 (defun bibtex-next-field (arg) | |
1130 "Finds end of text of next BibTeX field; with arg, to its beginning" | |
1131 (interactive "P") | |
1132 (bibtex-inside-field) | |
1133 (let ((start (point))) | |
1134 (condition-case () | |
1135 (progn | |
1136 (bibtex-enclosing-field) | |
1137 (goto-char (match-end 0)) | |
1138 (forward-char 2)) | |
1139 (error | |
1140 (goto-char start) | |
1141 (end-of-line) | |
1142 (forward-char 1)))) | |
1143 (bibtex-find-text arg)) | |
1144 | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1145 ;; (defun bibtex-next-field () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1146 ;; "Finds end of text of next field." |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1147 ;; (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1148 ;; (condition-case () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1149 ;; (progn |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1150 ;; (bibtex-inside-field) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1151 ;; (re-search-forward ",[ \t\n]*" (point-max) 1) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1152 ;; (bibtex-enclosing-field) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1153 ;; (bibtex-inside-field)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1154 ;; (error nil))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1155 |
257 | 1156 (defun bibtex-find-text (arg) |
1157 "Go to end of text of current field; with arg, go to beginning." | |
1158 (interactive "P") | |
1159 (bibtex-inside-field) | |
1160 (bibtex-enclosing-field) | |
1161 (if arg | |
1162 (progn | |
1163 (goto-char (match-beginning bibtex-text-in-field)) | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1164 (if (looking-at "\"") |
257 | 1165 (forward-char 1))) |
1166 (goto-char (match-end bibtex-text-in-field)) | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1167 (if (= (preceding-char) ?\") |
257 | 1168 (forward-char -1)))) |
1169 | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1170 ;; (defun bibtex-find-text () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1171 ;; "Go to end of text of current field." |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1172 ;; (interactive) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1173 ;; (condition-case () |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1174 ;; (progn |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1175 ;; (bibtex-inside-field) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1176 ;; (bibtex-enclosing-field) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1177 ;; (goto-char (match-end bibtex-text-in-field)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1178 ;; (bibtex-inside-field)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1179 ;; (error nil))) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1180 |
257 | 1181 (defun bibtex-remove-OPT () |
1182 "Removes the 'OPT' starting optional arguments and goes to end of text" | |
1183 (interactive) | |
1184 (bibtex-inside-field) | |
1185 (bibtex-enclosing-field) | |
1186 (save-excursion | |
1187 (goto-char (match-beginning bibtex-name-in-field)) | |
1188 (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
|
1189 ;; 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
|
1190 (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
|
1191 (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
|
1192 (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
|
1193 (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
|
1194 (indent-to-column bibtex-text-alignment)))) |
257 | 1195 (bibtex-inside-field)) |
1196 | |
1197 (defun bibtex-inside-field () | |
1198 "Try to avoid point being at end of a bibtex field." | |
1199 (interactive) | |
1200 (end-of-line) | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1201 (skip-chars-backward " \t") ;MON - maybe delete these chars? |
257 | 1202 (cond ((= (preceding-char) ?,) |
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
|
1203 (forward-char -2))) ; -1 --> -2 sct@dcs.edinburgh.ac.uk |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1204 (cond ((= (preceding-char) ?\") |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1205 (forward-char -1)))) ;MON - only go back if quote |
257 | 1206 |
1207 (defun bibtex-remove-double-quotes () | |
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
|
1208 "Removes \"\" around string." |
257 | 1209 (interactive) |
1210 (save-excursion | |
1211 (bibtex-inside-field) | |
1212 (bibtex-enclosing-field) | |
1213 (let ((start (match-beginning bibtex-text-in-field)) | |
1214 (stop (match-end bibtex-text-in-field))) | |
1215 (goto-char stop) | |
1216 (forward-char -1) | |
1217 (if (looking-at "\"") | |
1218 (delete-char 1)) | |
1219 (goto-char start) | |
1220 (if (looking-at "\"") | |
1221 (delete-char 1))))) | |
1222 | |
1223 (defun bibtex-kill-optional-field () | |
1224 "Kill the entire enclosing optional BibTeX field" | |
1225 (interactive) | |
1226 (bibtex-inside-field) | |
1227 (bibtex-enclosing-field) | |
1228 (goto-char (match-beginning bibtex-name-in-field)) | |
1229 (let ((the-end (match-end 0)) | |
1230 (the-beginning (match-beginning 0))) | |
1231 (if (looking-at "OPT") | |
1232 (progn | |
1233 (goto-char the-end) | |
1234 (skip-chars-forward " \t\n,") | |
1235 (kill-region the-beginning the-end)) | |
1236 (error "Mandatory fields can't be killed")))) | |
1237 | |
1238 (defun bibtex-empty-field () | |
1239 "Delete the text part of the current field, replace with empty text" | |
1240 (interactive) | |
1241 (bibtex-inside-field) | |
1242 (bibtex-enclosing-field) | |
1243 (goto-char (match-beginning bibtex-text-in-field)) | |
1244 (kill-region (point) (match-end bibtex-text-in-field)) | |
1245 (insert "\"\"") | |
1246 (bibtex-find-text t)) | |
1247 | |
1248 | |
1249 (defun bibtex-pop-previous (arg) | |
1250 "Replace text of current field with the text of similar field in previous entry. | |
1251 With arg, go up ARG entries. Repeated, goes up so many times. May be | |
1252 intermixed with \\[bibtex-pop-next] (bibtex-pop-next)." | |
1253 (interactive "p") | |
1254 (bibtex-inside-field) | |
1255 (save-excursion | |
1256 ; parse current field | |
1257 (bibtex-enclosing-field) | |
1258 (let ((start-old-text (match-beginning bibtex-text-in-field)) | |
1259 (stop-old-text (match-end bibtex-text-in-field)) | |
1260 (start-name (match-beginning bibtex-name-in-field)) | |
1261 (stop-name (match-end bibtex-name-in-field)) | |
1262 (new-text)) | |
1263 (goto-char start-name) | |
1264 ; construct regexp for previous field with same name as this one | |
1265 (let ((matching-entry | |
1266 (bibtex-cfield | |
1267 (buffer-substring (if (looking-at "OPT") | |
1268 (+ (point) (length "OPT")) | |
1269 (point)) | |
1270 stop-name) | |
1271 bibtex-field-text))) | |
1272 | |
1273 ; if executed several times in a row, start each search where the | |
1274 ; last one finished | |
1275 (cond ((or (eq last-command 'bibtex-pop-previous) | |
1276 (eq last-command 'bibtex-pop-next)) | |
1277 t | |
1278 ) | |
1279 (t | |
1280 (bibtex-enclosing-reference) | |
1281 (setq bibtex-pop-previous-search-point (match-beginning 0)) | |
1282 (setq bibtex-pop-next-search-point (match-end 0)))) | |
1283 (goto-char bibtex-pop-previous-search-point) | |
1284 | |
1285 ; Now search for arg'th previous similar field | |
1286 (cond | |
1287 ((re-search-backward matching-entry (point-min) t arg) | |
1288 (setq new-text | |
1289 (buffer-substring (match-beginning bibtex-text-in-cfield) | |
1290 (match-end bibtex-text-in-cfield))) | |
1291 ; Found a matching field. Remember boundaries. | |
1292 (setq bibtex-pop-next-search-point (match-end 0)) | |
1293 (setq bibtex-pop-previous-search-point (match-beginning 0)) | |
1294 (bibtex-flash-head) | |
1295 ; Go back to where we started, delete old text, and pop new. | |
1296 (goto-char stop-old-text) | |
1297 (delete-region start-old-text stop-old-text) | |
1298 (insert new-text)) | |
1299 (t ; search failed | |
1300 (error "No previous matching BibTeX field.")))))) | |
1301 (setq this-command 'bibtex-pop-previous)) | |
1302 | |
1303 (defun bibtex-pop-next (arg) | |
1304 "Replace text of current field with the text of similar field in next entry. | |
1305 With arg, go up ARG entries. Repeated, goes up so many times. May be | |
1306 intermixed with \\[bibtex-pop-previous] (bibtex-pop-previous)." | |
1307 (interactive "p") | |
1308 (bibtex-inside-field) | |
1309 (save-excursion | |
1310 ; parse current field | |
1311 (bibtex-enclosing-field) | |
1312 (let ((start-old-text (match-beginning bibtex-text-in-field)) | |
1313 (stop-old-text (match-end bibtex-text-in-field)) | |
1314 (start-name (match-beginning bibtex-name-in-field)) | |
1315 (stop-name (match-end bibtex-name-in-field)) | |
1316 (new-text)) | |
1317 (goto-char start-name) | |
1318 ; construct regexp for next field with same name as this one, | |
1319 ; ignoring possible OPT's | |
1320 (let ((matching-entry | |
1321 (bibtex-cfield | |
1322 (buffer-substring (if (looking-at "OPT") | |
1323 (+ (point) (length "OPT")) | |
1324 (point)) | |
1325 stop-name) | |
1326 bibtex-field-text))) | |
1327 | |
1328 ; if executed several times in a row, start each search where the | |
1329 ; last one finished | |
1330 (cond ((or (eq last-command 'bibtex-pop-next) | |
1331 (eq last-command 'bibtex-pop-previous)) | |
1332 t | |
1333 ) | |
1334 (t | |
1335 (bibtex-enclosing-reference) | |
1336 (setq bibtex-pop-previous-search-point (match-beginning 0)) | |
1337 (setq bibtex-pop-next-search-point (match-end 0)))) | |
1338 (goto-char bibtex-pop-next-search-point) | |
1339 | |
1340 ; Now search for arg'th next similar field | |
1341 (cond | |
1342 ((re-search-forward matching-entry (point-max) t arg) | |
1343 (setq new-text | |
1344 (buffer-substring (match-beginning bibtex-text-in-cfield) | |
1345 (match-end bibtex-text-in-cfield))) | |
1346 ; Found a matching field. Remember boundaries. | |
1347 (setq bibtex-pop-next-search-point (match-end 0)) | |
1348 (setq bibtex-pop-previous-search-point (match-beginning 0)) | |
1349 (bibtex-flash-head) | |
1350 ; Go back to where we started, delete old text, and pop new. | |
1351 (goto-char stop-old-text) | |
1352 (delete-region start-old-text stop-old-text) | |
1353 (insert new-text)) | |
1354 (t ; search failed | |
1355 (error "No next matching BibTeX field.")))))) | |
1356 (setq this-command 'bibtex-pop-next)) | |
1357 | |
1358 (defun bibtex-flash-head () | |
1359 "Flash at BibTeX reference head before point, if exists. (Moves point)." | |
1360 (let ((flash)) | |
1361 (cond ((re-search-backward bibtex-reference-head (point-min) t) | |
1362 (goto-char (match-beginning bibtex-type-in-head)) | |
1363 (setq flash (match-end bibtex-key-in-reference))) | |
1364 (t | |
1365 (end-of-line) | |
1366 (skip-chars-backward " \t") | |
1367 (setq flash (point)) | |
1368 (beginning-of-line) | |
1369 (skip-chars-forward " \t"))) | |
1370 (if (pos-visible-in-window-p (point)) | |
1371 (sit-for 1) | |
1372 (message "From: %s" | |
1373 (buffer-substring (point) flash))))) | |
1374 | |
1375 | |
1376 | |
1377 (defun bibtex-enclosing-field () | |
1378 "Search for BibTeX field enclosing point. | |
1379 Point moves to end of field; also, use match-beginning and match-end | |
1380 to parse the field." | |
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
|
1381 ;; 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
|
1382 (let ((old-point (point))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1383 (condition-case errname |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1384 (bibtex-enclosing-regexp bibtex-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
|
1385 (search-failed |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1386 (goto-char old-point) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1387 (error "Can't find enclosing BibTeX field."))))) |
257 | 1388 |
1389 (defun bibtex-enclosing-reference () | |
1390 "Search for BibTeX reference enclosing point. | |
1391 Point moves to end of reference; also, use match-beginning and match-end | |
1392 to parse the reference." | |
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
|
1393 ;; 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
|
1394 (let ((old-point (point))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1395 (condition-case errname |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1396 (bibtex-enclosing-regexp bibtex-reference) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1397 (search-failed |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1398 (goto-char old-point) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1399 (error "Can't find enclosing BibTeX reference."))))) |
257 | 1400 |
1401 (defun bibtex-enclosing-regexp (regexp) | |
1402 "Search for REGEXP enclosing point. | |
1403 Point moves to end of REGEXP. See also match-beginning and match-end. | |
1404 If an enclosing REGEXP is not found, signals search-failed; point is left in | |
1405 an undefined location. | |
1406 | |
1407 [Doesn't something like this exist already?]" | |
1408 | |
1409 (interactive "sRegexp: ") | |
1410 ; compute reasonable limits for the loop | |
1411 (let* ((initial (point)) | |
1412 (right (if (re-search-forward regexp (point-max) t) | |
1413 (match-end 0) | |
1414 (point-max))) | |
1415 (left | |
1416 (progn | |
1417 (goto-char initial) | |
1418 (if (re-search-backward regexp (point-min) t) | |
1419 (match-beginning 0) | |
1420 (point-min))))) | |
1421 ; within the prescribed limits, loop until a match is found | |
1422 (goto-char left) | |
1423 (re-search-forward regexp right nil 1) | |
1424 (if (> (match-beginning 0) initial) | |
1425 (signal 'search-failed (list regexp))) | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1426 (while (<= (match-end 0) initial) |
257 | 1427 (re-search-forward regexp right nil 1) |
1428 (if (> (match-beginning 0) initial) | |
1429 (signal 'search-failed (list regexp)))) | |
1430 )) | |
1431 | |
1432 (defun bibtex-clean-entry () | |
1433 "For all optional fields of current BibTeX entry: if empty, kill the whole field; otherwise, remove the \"OPT\" string in the name; if text numerical, remove double-quotes. For all mandatory fields: if empty, signal error." | |
1434 (interactive) | |
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
|
1435 (beginning-of-bibtex-entry) |
257 | 1436 (let ((start (point))) |
1437 (save-restriction | |
2602
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1438 (narrow-to-region start (save-excursion (end-of-bibtex-entry) (point))) |
257 | 1439 (while (re-search-forward bibtex-field (point-max) t 1) |
1440 (let ((begin-field (match-beginning 0)) | |
1441 (end-field (match-end 0)) | |
1442 (begin-name (match-beginning bibtex-name-in-field)) | |
1443 (end-name (match-end bibtex-name-in-field)) | |
1444 (begin-text (match-beginning bibtex-text-in-field)) | |
1445 (end-text (match-end bibtex-text-in-field)) | |
1446 ) | |
1447 (goto-char begin-name) | |
1448 (cond ((and | |
1449 (looking-at "OPT") | |
1450 bibtex-clean-entry-zap-empty-opts) | |
1451 (goto-char begin-text) | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1452 (if (looking-at "\"\"") ; empty: delete whole field |
257 | 1453 (delete-region begin-field end-field) |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1454 ; otherwise: not empty, delete "OPT" |
257 | 1455 (goto-char begin-name) |
1456 (delete-char (length "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
|
1457 (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
|
1458 ;; fixup alignment. [alarson:19920309.2047CST] |
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 (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
|
1460 (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
|
1461 (indent-to-column bibtex-text-alignment)) |
257 | 1462 (goto-char begin-field) ; and loop to go through next test |
1463 )) | |
1464 (t | |
1465 (goto-char begin-text) | |
1466 (cond ((looking-at "\"[0-9]+\"") ; if numerical, | |
1467 (goto-char end-text) | |
1468 (delete-char -1) ; delete enclosing double-quotes | |
1469 (goto-char begin-text) | |
1470 (delete-char 1) | |
1471 (goto-char end-field) ; go to end for next search | |
1472 (forward-char -2) ; to compensate for the 2 quotes deleted | |
1473 ) | |
1474 ((looking-at "\"\"") ; if empty quotes, complain | |
1475 (forward-char 1) | |
1476 (if (not (or (equal (buffer-substring | |
1477 begin-name | |
1478 (+ begin-name 3)) | |
1479 "OPT") | |
1480 (equal (buffer-substring | |
1481 begin-name | |
1482 (+ begin-name 3)) | |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1483 "opt"))) |
257 | 1484 (error "Mandatory field ``%s'' is empty" |
1485 (buffer-substring begin-name end-name)))) | |
1486 (t | |
1487 (goto-char end-field)))))))) | |
1488 (goto-char start) | |
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
|
1489 (end-of-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
|
1490 ;; 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
|
1491 (save-excursion |
7750
892098bdaa24
(bibtex-clean-entry): Back over close delimiter carefully.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
1492 (backward-char 1) |
892098bdaa24
(bibtex-clean-entry): Back over close delimiter carefully.
Richard M. Stallman <rms@gnu.org>
parents:
7300
diff
changeset
|
1493 (skip-syntax-backward " >") |
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
|
1494 (if (eq (preceding-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
|
1495 (backward-delete-char 1))) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1496 (skip-whitespace-and-comments))) |
257 | 1497 |
1498 | |
3527
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1499 ;;; Menus for bibtex mode |
257 | 1500 |
3527
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1501 (define-key bibtex-mode-map [menu-bar entry-types] |
3552
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1502 (cons "Entry Types" (make-sparse-keymap "Entry Types"))) |
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
|
1503 |
3527
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1504 (define-key bibtex-mode-map [menu-bar entry-types bibtex-InProceedings] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1505 '(" article in conference Proceedings " . bibtex-InProceedings)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1506 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Article] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1507 '(" Article in journal " . bibtex-Article)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1508 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Book] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1509 '(" Book " . bibtex-Book)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1510 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Booklet] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1511 '(" Booklet " . bibtex-Booklet)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1512 (define-key bibtex-mode-map [menu-bar entry-types bibtex-InProceedings] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1513 '(" Conference " . bibtex-InProceedings)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1514 (define-key bibtex-mode-map [menu-bar entry-types bibtex-MastersThesis] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1515 '(" Master's Thesis " . bibtex-MastersThesis)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1516 ;define-key bibtex-mode-map [menu-bar entry-types bibtex-DEAthesis] |
3552
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1517 ;'((" DEA Thesis " . bibtex-DEAthesis)) |
3527
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1518 (define-key bibtex-mode-map [menu-bar entry-types bibtex-PhdThesis] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1519 '(" Phd. Thesis " . bibtex-PhdThesis)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1520 (define-key bibtex-mode-map [menu-bar entry-types bibtex-TechReport] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1521 '(" Technical Report " . bibtex-TechReport)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1522 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Manual] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1523 '(" technical Manual " . bibtex-Manual)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1524 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Proceedings] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1525 '(" conference Proceedings " . bibtex-Proceedings)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1526 (define-key bibtex-mode-map [menu-bar entry-types bibtex-InBook] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1527 '(" a chapter in a Book " . bibtex-InBook)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1528 (define-key bibtex-mode-map [menu-bar entry-types bibtex-InCollection] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1529 '(" an article in a Collection " . bibtex-InCollection)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1530 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Misc] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1531 '(" miscellaneous " . bibtex-Misc)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1532 (define-key bibtex-mode-map [menu-bar entry-types bibtex-Unpublished] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1533 '(" unpublished " . bibtex-Unpublished)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1534 (define-key bibtex-mode-map [menu-bar entry-types bibtex-string] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1535 '(" string " . bibtex-string)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1536 (define-key bibtex-mode-map [menu-bar entry-types bibtex-preamble] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1537 '(" preamble " . bibtex-preamble)) |
257 | 1538 |
3527
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1539 (define-key bibtex-mode-map [menu-bar move/edit] |
3552
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1540 (cons "Bibtex Edit" (make-sparse-keymap "Bibtex Edit"))) |
257 | 1541 |
3527
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1542 (define-key bibtex-mode-map [menu-bar move/edit bibtex-next-field] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1543 '(" next field " . bibtex-next-field)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1544 (define-key bibtex-mode-map [menu-bar move/edit bibtex-find-text] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1545 '(" to end of field " . bibtex-find-text)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1546 (define-key bibtex-mode-map [menu-bar move/edit bibtex-pop-previous] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1547 '("snatch from similar preceding field" . bibtex-pop-previous)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1548 (define-key bibtex-mode-map [menu-bar move/edit bibtex-pop-next] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1549 '("snatch from similar following field" . bibtex-pop-next)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1550 (define-key bibtex-mode-map [menu-bar move/edit bibtex-remove-OPT] |
3552
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1551 '(" remove OPT " . bibtex-remove-OPT)) |
3527
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1552 (define-key bibtex-mode-map [menu-bar move/edit bibtex-remove-double-quotes] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1553 '(" remove quotes " . bibtex-remove-double-quotes)) |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1554 (define-key bibtex-mode-map [menu-bar move/edit bibtex-clean-entry] |
a0bd8ccfcf1c
Define 2 local menu-bar submaps.
Richard M. Stallman <rms@gnu.org>
parents:
3367
diff
changeset
|
1555 '(" clean up entry " . bibtex-clean-entry)) |
3552
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1556 (define-key bibtex-mode-map [menu-bar move/edit find-bibtex-duplicates] |
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1557 '(" find duplicates " . find-bibtex-duplicates)) |
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1558 (define-key bibtex-mode-map [menu-bar move/edit sort-bibtex-entries] |
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1559 '(" sort entries " . sort-bibtex-entries)) |
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1560 (define-key bibtex-mode-map [menu-bar move/edit validate-bibtex-buffer] |
84fded047f22
Fix typos in previous change.
Richard M. Stallman <rms@gnu.org>
parents:
3527
diff
changeset
|
1561 '(" validate entries " . validate-bibtex-buffer)) |
257 | 1562 |
1563 | |
1564 ;; Please don't send anything to bug-gnu-emacs about these Sunwindows functions | |
1565 ;; since we aren't interested. See etc/SUN-SUPPORT for the reasons why | |
1566 ;; we consider this nothing but a distraction from our work. | |
1567 | |
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
|
1568 ;(defmacro eval-in-menu-window (&rest l) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1569 ; "Evaluates its argument in the window in which the mouse button was pressed." |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1570 ; (list 'eval-in-window '*menu-window* l)) |
257 | 1571 |
807
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1572 ;(defmenu bibtex-sun-entry-menu |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1573 ; ("Article In Conf. Proc." eval-in-menu-window bibtex-InProceedings) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1574 ; ("Article In Journal" eval-in-menu-window bibtex-Article) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1575 ; ("Book" eval-in-menu-window bibtex-Book) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1576 ; ("Booklet" eval-in-menu-window bibtex-Booklet) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1577 ; ("Master's Thesis" eval-in-menu-window bibtex-MastersThesis) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1578 ; ("PhD. Thesis" eval-in-menu-window bibtex-PhdThesis) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1579 ; ("Technical Report" eval-in-menu-window bibtex-TechReport) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1580 ; ("Technical Manual" eval-in-menu-window bibtex-Manual) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1581 ; ("Conference Proceedings" eval-in-menu-window bibtex-Proceedings) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1582 ; ("In A Book" eval-in-menu-window bibtex-InBook) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1583 ; ("In A Collection" eval-in-menu-window bibtex-InCollection) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1584 ; ("Miscellaneous" eval-in-menu-window bibtex-Misc) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1585 ; ("Unpublished" eval-in-menu-window bibtex-Unpublished) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1586 ; ("string" eval-in-menu-window bibtex-string) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1587 ; ("preamble" eval-in-menu-window bibtex-preamble)) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1588 ; |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1589 ;(defmenu bibtex-sun-menu |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1590 ; ("BibTeX menu") |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1591 ; ("add entry" . bibtex-sun-entry-menu) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1592 ; ("next field" eval-in-menu-window bibtex-next-field nil) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1593 ; ("to end of field" eval-in-menu-window bibtex-find-text nil) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1594 ; ("snatch similar preceding field" eval-in-menu-window bibtex-pop-previous 1) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1595 ; ("snatch similar following field" eval-in-menu-window bibtex-pop-next 1) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1596 ; ("remove OPT" eval-in-menu-window bibtex-remove-OPT) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1597 ; ("remove quotes" eval-in-menu-window bibtex-remove-double-quotes) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1598 ; ("clean entry" eval-in-menu-window bibtex-clean-entry) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1599 ; ("describe BibTeX mode" eval-in-menu-window describe-mode) |
4f28bd14272c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
662
diff
changeset
|
1600 ; ("Main Emacs menu" . emacs-menu)) |
257 | 1601 |
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
|
1602 ;(defun bibtex-sun-menu-eval (window x y) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1603 ; "Pop-up menu of BibTeX commands." |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1604 ; (sun-menu-evaluate window (1+ x) (1- y) 'bibtex-sun-menu)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1605 ; |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1606 ;(defun bibtex-sun-environment () |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1607 ; "Set up sun menus for BibTeX mode. Call it as bibtex-mode-hook, or |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1608 ;interactively" |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1609 ; (interactive) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1610 ; (local-set-mouse '(text right) 'bibtex-sun-menu-eval)) |
2465861025cd
Installed Aaron Larson's new bibtex.el. See the header comment for
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2307
diff
changeset
|
1611 ; |
257 | 1612 |
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
|
1613 ;;; bibtex.el ends here |